R 动态将geom_段添加到图表中
我有一个这样的数据帧R 动态将geom_段添加到图表中,r,ggplot2,R,Ggplot2,我有一个这样的数据帧 library(ggplot2) df = data.frame(N = c(12, 18)) 我想得到 我知道 问题是数据可能会更改,行可以不是两行,而是三行或更多行,并且代码会变得不正确。所以我尝试使用一个循环 v = list() for (i in 1:length(df$N)) { n = geom_segment(aes(x = df$N[i], y = 0, xend = df$N[i], yend = 0.5), color="grey50",
library(ggplot2)
df = data.frame(N = c(12, 18))
我想得到
我知道
问题是数据可能会更改,行可以不是两行,而是三行或更多行,并且代码会变得不正确。所以我尝试使用一个循环
v = list()
for (i in 1:length(df$N)) {
n = geom_segment(aes(x = df$N[i], y = 0, xend = df$N[i], yend = 0.5), color="grey50",
linetype="dashed", size=1.5)
v = append(n, v)
}
v
ggplot()+ geom_segment(aes(x = 0, y = 0.5, xend = max(df$N), yend =0.5), color="grey50",
linetype="dashed", size=1.5) + v
但图表只显示了最后一行。如何修复循环,或者我必须用另一种方法进行修复?您不需要循环
geom_段
可以处理来自向量的多个输入
df1
v = list()
for (i in 1:length(df$N)) {
n = geom_segment(aes(x = df$N[i], y = 0, xend = df$N[i], yend = 0.5), color="grey50",
linetype="dashed", size=1.5)
v = append(n, v)
}
v
ggplot()+ geom_segment(aes(x = 0, y = 0.5, xend = max(df$N), yend =0.5), color="grey50",
linetype="dashed", size=1.5) + v