如何制作在一段时间内每天组合多个条目的折线图?

Posted

技术标签:

【中文标题】如何制作在一段时间内每天组合多个条目的折线图?【英文标题】:How do I make a line graph that combines multiple entries per day over a period of time? 【发布时间】:2022-01-24 03:43:01 【问题描述】:

不确定我的标题是否有意义,但我正在尝试绘制一段时间内的支出。这是我的输入:

structure(list(case = c(1L, 1L, 1L, 1L, 1L, 2L), year = c(2021L, 
2021L, 2021L, 2021L, 2021L, 2021L), month = c(11L, 11L, 11L, 
11L, 11L, 11L), day = c(11L, 11L, 11L, 11L, 11L, 12L), type1 = c("food", 
"food", "drink", "misc", "drink", "drink"), type2 = c("restaurant", 
"tang_kee", "coffee", "headphone", "cola", "coffee_grounds"), 
    amount = c(210, 12, 9, 50, 18, 39)), row.names = c(NA, 6L
), class = "data.frame")

当我只是用 gglines 制作一个简单的折线图时,它是这样的:

ggline(slack_budget,
         x="case",
         y="amount")+
  theme_bw()+
  labs(title = "Progression of Spending November and December",
       subtitle = "Non-Rent / Non-Utility Spending Line Graph",
       caption = "*Data obtained from local matrix.")+
  theme(plot.title = element_text(face = "bold"),
        plot.caption = element_text(face = "italic"))

创建这个:

正如您在此处看到的那样,它为当天的每个支出条目绘制了一个点。在我看来,这看起来有点难看,因为它并不能真正说明每天实际花费了多少。

我更想要的是结合每一天的所有条目而不结合每个月的支出(因此我有 x = case 而不是 x = day)。如果有更简单的方法来实现这一点,那就太好了。

解决方案:

感谢 Stefan 的回答。我现在在汇总数据后创建了这个可爱的图:

【问题讨论】:

【参考方案1】:

一种选择是汇总您每天/案例的数据,以折线图显示每天的总支出:

library(ggpubr)

slack_budget_sum <- aggregate(amount ~ case + year + month + day, data = slack_budget, FUN = sum)

base <- ggline(slack_budget_sum,
       x="case",
       y="amount")+
  theme_bw()+
  labs(title = "Progression of Spending November and December",
       subtitle = "Non-Rent / Non-Utility Spending Line Graph",
       caption = "*Data obtained from local matrix.")+
  theme(plot.title = element_text(face = "bold"),
        plot.caption = element_text(face = "italic"))

base

如果您仍想显示单次购买,您可以使用原始非汇总数据通过额外的geom_point 来实现:

base + 
  geom_point(data = slack_budget, color = "steelblue")

【讨论】:

我认为这可以显示长期趋势,但我对每日或每月模式更感兴趣,所以最好看看每天的总和绘制成折线图。 等等,没关系,这实际上正是我所需要的。只是在你的图表上看起来不同。谢谢!

以上是关于如何制作在一段时间内每天组合多个条目的折线图?的主要内容,如果未能解决你的问题,请参考以下文章

为啥EXCEL做出的折线图 初始点不在0 如图

Excel技巧--让折线图带面积更直观生动

Tableau 图表大全5.0之折线图制作

如何使用 Chart.js 向我的折线图添加点击事件

使用 Sencha GXT 3,生成一个包含动态数量的线系列字段的折线图?

excel中如何用一个图表绘制多条折线