我正在生成一个 ggplot,它查看数据集中的曲线。当我构建绘图时,ggplot 会自动向 x 轴负侧的数据添加填充。脚本和绘图如下所示。
ggplot(df, aes(x = Var1, y = Var2)) +
geom_line() +
geom_vline(xintercept = 0) +
geom_hline(yintercept = Var2[1])
使用基础 R,我可以得到如下图所示的图。
plot(x = df$Var1, y = df$Var2, type = "l",
xlab = "Var1", ylab = "Var2")
abline(v = 0)
abline(h = df$Var2[1])
如果有人能帮助确定为什么我可能会得到自动填充以及如何让它停止,我将不胜感激。我想在 ggplot 中完成这项工作,以便我稍后可以为该线设置动画,因为它是一个时间序列,可用于比较来自同一来源的其他数据集。
必要时可以添加数据。然而,数据集的长度为 1561 obs。提前致谢。
最佳答案
我想你应该试试
ggplot(df, aes(x = Var1, y = Var2)) +
geom_path() +
geom_vline(xintercept = 0) +
geom_hline(yintercept = Var2[1])
反而。
geom_line()
-function 在 x 轴上按照变量的顺序连接点。看看这个例子
dt <- data.frame(
x = c(seq(-pi/2,3*pi,0.001),seq(-pi/2,3*pi,0.001)),
y = c(sin(seq(-pi/2,3*pi,0.001)), cos(seq(-pi/2,3*pi,0.001)))
)
ggplot(dt, aes(x,y)) + geom_line()
x坐标的两点
-pi/2
将首先连接,创建一条垂直的黑线。下一个 x = -pi/2 + 0.001
将被处理等等。 x 值将按顺序处理。因此你应该使用
geom_path()
得到想要的结果dt <- data.frame(
x = c(seq(-pi/2,3*pi,0.001),seq(-pi/2,3*pi,0.001)),
y = c(sin(seq(-pi/2,3*pi,0.001)), cos(seq(-pi/2,3*pi,0.001)))
)
ggplot(dt, aes(x,y)) + geom_path()
关于r - 如何停止 ggplot 线图添加填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61311651/