在 ggplot barplot 上添加标记线
Adding marker lines on ggplot barplot
如何在 ggplot 条形图中的每个条上添加一条线?
例如使用内置的ggplot例子:
mm <- ddply(mtcars, "cyl", summarise, mmpg = mean(mpg))
ggplot(mm, aes(x = factor(cyl), y = mmpg)) + geom_bar(stat = "identity")
产生这个
现在我有一个向量 y <- c(10, 5, 5)
,它是我想在每个条上绘制一条线的高度,生成类似这样的东西
我该怎么做?我尝试了 geom_hline
,但生成的线条却横跨整个图表。
这应该有效:
y <- c(10, 5, 5)
mm <- ddply(mtcars, "cyl", summarise, mmpg = mean(mpg))
mm <- cbind(mm, y) # get vector into data frame
ggplot(mm, aes(x = factor(cyl), y = mmpg)) +
geom_bar(stat = "identity") +
geom_errorbar(aes(yintercept = y, ymax=y, ymin=y),
color = "white", size = 2)
我们使用 geom_errorbar()
在数据框中绘制线条,然后通过手动将 ymax
和 ymin
设置为 y
值来减小它们的宽度。
上面的代码产生了这样的结果:
致谢 this 来源。
如何在 ggplot 条形图中的每个条上添加一条线?
例如使用内置的ggplot例子:
mm <- ddply(mtcars, "cyl", summarise, mmpg = mean(mpg))
ggplot(mm, aes(x = factor(cyl), y = mmpg)) + geom_bar(stat = "identity")
产生这个
现在我有一个向量 y <- c(10, 5, 5)
,它是我想在每个条上绘制一条线的高度,生成类似这样的东西
我该怎么做?我尝试了 geom_hline
,但生成的线条却横跨整个图表。
这应该有效:
y <- c(10, 5, 5)
mm <- ddply(mtcars, "cyl", summarise, mmpg = mean(mpg))
mm <- cbind(mm, y) # get vector into data frame
ggplot(mm, aes(x = factor(cyl), y = mmpg)) +
geom_bar(stat = "identity") +
geom_errorbar(aes(yintercept = y, ymax=y, ymin=y),
color = "white", size = 2)
我们使用 geom_errorbar()
在数据框中绘制线条,然后通过手动将 ymax
和 ymin
设置为 y
值来减小它们的宽度。
上面的代码产生了这样的结果:
致谢 this 来源。