r - 如何停止 ggplot 线图添加填充

标签 r ggplot2

我正在生成一个 ggplot,它查看数据集中的曲线。当我构建绘图时,ggplot 会自动向 x 轴负侧的数据添加填充。脚本和绘图如下所示。

ggplot(df, aes(x = Var1, y = Var2)) +
 geom_line() + 
 geom_vline(xintercept = 0) +
 geom_hline(yintercept = Var2[1])

enter image description here

使用基础 R,我可以得到如下图所示的图。
plot(x = df$Var1, y = df$Var2, type = "l",
 xlab = "Var1", ylab = "Var2")
abline(v = 0) 
abline(h = df$Var2[1])

enter image description here

如果有人能帮助确定为什么我可能会得到自动填充以及如何让它停止,我将不胜感激。我想在 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/

相关文章:

python - 特拉维斯 CI : error when installing rpy2

将 txt 文件读入列表,其中每个列表元素由以冒号结尾的行分隔

r - 更改箱线图的布局并为其添加标签

r - 渐变阴影置信区间

r - 在轴 geom_alluvium 上方添加标题

r - 计算R中两个向量的汉明距离?

r - geom_smooth 中的 color ="black"使用 R gglplot2 更改 lm 线。为什么?

r - tidyverse 解决方案,用于将多个列重新编码为新列,其中列名后缀增加一

r - ggplot2:如何添加填充/间隙来分段端点

R ggplot 方面 : varying x axis formatting and varying aesthetics by facet