Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在图形中绘制多条几何图形线_R_Ggplot2 - Fatal编程技术网

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)