【问题标题】:How does R interpret this dataset?R 如何解释这个数据集?
【发布时间】:2021-04-29 15:17:50
【问题描述】:

我目前正在尝试绘制一个折线图,在 x 轴上我想要“日期”,在 y 轴上我想要“percentage_change_next_weeks_price”。我的问题是我不明白 R 是如何接收我的数据集的。

我尝试绘制我制作的子集,它看起来像这样:

这是我为绘制它而编写的代码:

ggplot(TechIndustry_Q1, aes(x = date, y = percent_change_price)) + geom_line()

这是我的数据集:

关于这个数据集我有几个问题:

  1. R 是否识别 TechIndustry_Q1 中的每只股票都具有相同的开始日期和结束日期?日期有 48 个值,但我想确保 R 知道实际上只有 12 个,它们只是为每只股票重复自己。
  2. 如何使我的折线图看起来更平滑,而图上没有偶尔出现的垂直线?你们认为重复的日期让我的图表看起来难以解释吗?那样的话,解决办法是什么?

我提前感谢您的帮助,我是 R 的初学者,所以如果您能用简单的话解释一下,我将不胜感激。谢谢!

【问题讨论】:

    标签: r ggplot2 graph


    【解决方案1】:

    您看到的这种锯齿状模式是因为您没有指示 ggplot 存在不同的(股票)组。它尝试将所有数据绘制为按日期排序的单行,并且每个日期有 >2 个数据点会导致垂直线。让我用这个例子来说明。

    在这里,我创建了一个包含 4 只股票在随后 12 天的虚拟数据集,这些股票的值几乎是随机的。

    library(ggplot2)
    
    set.seed(0)
    
    today <- Sys.Date()
    df <- data.frame(
      date = rep(seq(today - 11, today, by = "1 day"), 4),
      percent_change_price = as.vector(replicate(4, cumsum(rnorm(12)))),
      stock = rep(LETTERS[1:4], each = 12)
    )
    

    当我们按照您的方式绘制时,您会得到我提到的锯齿图案。

    ggplot(df, aes(date, percent_change_price)) +
      geom_line()
    

    如果我们指出要为每只股票绘制不同的线(通过设置group 美学),不同的股票会自行解决,锯齿图案就会消失。

    ggplot(df, aes(date, percent_change_price)) +
      geom_line(aes(group = stock))
    

    最后,如果您改用 colour 美学,这种分组也会自动发生。作为奖励,你也会得到一个传奇。

    ggplot(df, aes(date, percent_change_price)) +
      geom_line(aes(colour = stock))
    

    reprex package (v1.0.0) 于 2021 年 4 月 29 日创建

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-23
      • 2020-02-23
      • 2017-10-30
      • 1970-01-01
      • 2015-10-11
      • 2020-05-09
      • 2022-01-05
      • 1970-01-01
      相关资源
      最近更新 更多