gpt4 book ai didi

r - 在图中绘制多个 geom-vline

转载 作者:行者123 更新时间:2023-12-03 22:57:31 27 4
gpt4 key购买 nike

我试图在图中绘制两个“geom_vline()”。

下面的代码适用于一条垂直线:

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))

但是,当我通过更改添加第二条所需的垂直线时
vertical.lines <- c(2.5,4) ,我得到错误:
´Error: Aesthetics must be either length 1 or the same as the data (7): xintercept´

我该如何解决?

最佳答案

只需删除 aes()当您使用 + geom_vline :

ggplot(df1,aes(x=x, y=y)) +
geom_line()+
geom_vline(xintercept = vertical.lines)

它不起作用,因为第二个 aes()与第一个冲突,与 ggplot的语法有关.所有 aesthetics需要有相同的长度,因为错误告诉你。

你应该看到 +geom_vline作为图形的一层注释,不像 +geom_points+geom_line用于将数据映射到绘图。 (请参阅 here 它们在两个不同的部分中的情况)。

数据:
x=1:7
y=1:7
df1 = data.frame(x=x,y=y)
vertical.lines <- c(2.5,4)

关于r - 在图中绘制多个 geom-vline,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54558000/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com