【问题标题】:R - Time series data with ggplot2R - 使用 ggplot2 的时间序列数据
【发布时间】:2014-10-10 14:36:29
【问题描述】:

我有一个时间序列数据集,其中 x 轴是按时间倒序排列的事件列表,因此观察结果的 x 值一直看起来像“n-1”或“n-2”降至 1。

我想使用 ggplot 制作一个折线图,创建一条连接所有点的平滑连续线,但是当我尝试输入数据时,x 轴似乎非常不稳定。

我目前使用的代码是

library(ggplot2)

theoretical = data.frame(PA = c("n-1", "n-2", "n-3"),
                         predictive_value = c(100, 99, 98));

p = ggplot(data=theoretical, aes(x=PA, y=predictive_value)) + geom_line();
p = p + scale_x_discrete(labels=paste("n-", 1:3, sep=""));

通常使用 ggplot 出现的拟合线和网格分区被替换为 no line 和 wayyy too many partitions。

【问题讨论】:

  • 这里没有足够的信息来重现问题。请查看how to create a reproducible example 以获取有关如何包含示例数据的提示,因为我们实际上可以运行代码以查看与您相同的内容。否则很难帮到你。
  • “Wonky”不是一个有用的描述。提供导致行为的数据的(小)示例会很有帮助。
  • 谢谢,我觉得我已经更新得够好了。

标签: r graph ggplot2 axes


【解决方案1】:

当您将geom_line() 与至少一个轴上的因子一起使用时,您需要指定group 美学,在本例中为常量。

p = ggplot(data=theoretical, aes(x=PA, y=predictive_value, group = 1)) + geom_line()
p = p + scale_x_discrete(labels=paste("n-", 1:3, sep=""))
p

如果你想去掉小网格线,你可以添加

theme(panel.grid.minor = element_blank())

到你的图表。

请注意,按比例计算,像这样在一个轴上使用因子可能有点冒险。使用典型的连续刻度可能会更好,只需将点 1、2 和 3 重新标记为“n-1”、“n-2”和“n-3”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-04
    • 1970-01-01
    • 2017-03-04
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多