R 在图形中绘制多条几何图形线
我试图在图形中绘制两条“几何线() 以下代码适用于一条垂直线:R 在图形中绘制多条几何图形线,r,ggplot2,R,Ggplot2,我试图在图形中绘制两条“几何线() 以下代码适用于一条垂直线: x=1:7 y=1:7 df1 = data.frame(x=x,y=y) vertical.lines <- c(2.5) ggplot(df1,aes(x=x, y=y)) + geom_line()+ geom_vline(aes(xintercept = vertical.lines)) 如何修复此问题?使用+geom\u vline时,只需删除aes(): ggplot(df1, aes(x = x, y
x=1:7
y=1:7
df1 = data.frame(x=x,y=y)
vertical.lines <- c(2.5)
ggplot(df1,aes(x=x, y=y)) +
geom_line()+
geom_vline(aes(xintercept = vertical.lines))
如何修复此问题?使用+geom\u vline
时,只需删除aes()
:
ggplot(df1, aes(x = x, y = y)) +
geom_line() +
sapply(vertical.lines, function(xint) geom_vline(aes(xintercept = xint)))
ggplot(df1,aes(x=x, y=y)) +
geom_line()+
geom_vline(xintercept = vertical.lines)
它不起作用,因为第二个aes()
与第一个冲突,它与ggplot
的语法有关。正如错误告诉您的那样,所有的美学
都需要具有相同的长度
您应该将+geom\u vline
视为图形的注释层,而不是像用于将数据映射到绘图的+geom\u points
或+geom\u line
。(请参见两个不同的部分)
数据:
x=1:7
y=1:7
df1=数据帧(x=x,y=y)
vertical.lines不使用aes()
,只使用geom\u vline(xintercept=vertical.lines)
。太好了。请回答,这样我可以接受它作为答案。有没有提示aes()为什么不起作用?注意。此解决方案也不太理想,因为它覆盖了图例功能。太好了。感谢您的参考:“注释是一种特殊类型的图层,它不会从绘图中继承全局设置。”这个答案可以处理数据子集,因此可以进行面切。RLave的解决方案将在所有方面放置几何图形
ggplot(df1,aes(x=x, y=y)) +
geom_line()+
geom_vline(xintercept = vertical.lines)
x=1:7
y=1:7
df1 = data.frame(x=x,y=y)
vertical.lines <- c(2.5,4)