首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在ggplot2中使用数据子集向时间序列图中添加线性趋势线

在ggplot2中使用数据子集向时间序列图中添加线性趋势线
EN

Stack Overflow用户
提问于 2021-05-05 11:09:11
回答 1查看 366关注 0票数 0

我正在对不同行业公司的净销售额数据进行研究。为此,我有一个包含不同行业公司净销售额的数据集。现在,我想在一张图上创建每个行业的地块,其中1条对应于每年净销售额的总和(从2010-2020年),另一条是2010-2019年到2020年的趋势线(因此,考虑到前几年,2020年的预期净销售额)。这样,我就有了一个直观的帮助,看看2020年的数字是否有明显的下降。我已经得到了使用dplyr进行排序的第一个图表(每个行业每年的总净销售额)如下:

代码语言:javascript
运行
复制
library(ggplot); library(tidyverse)
Industries <- df %>%
      group_by(NAICS, Year) %>%
      summarize(Sales = mean(`Net Sales`))
    
Industry_Plot <- ggplot(data = Industries, aes(Year, Sales)) +
  theme_bw() +
  theme(axis.text.y = element_blank(),
        axis.ticks.y = element_blank(),
        panel.grid = element_blank()) +
  geom_line(color = "steelblue", size = 1)

至于第二部分,我需要知道:

  1. 如何绘制2020年每个行业的趋势线,以及
  2. 如何将这些数据组合成1张图。

我在下面为一个行业提供了一个数据集的'dput()‘示例(以下是一个行业的合计净销售额(NAICS):

代码语言:javascript
运行
复制
Industries <- structure(list(NAICS = c(315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315), 
    Year = c(2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020), 
    Sales = c(1839.94, 2227.27, 2203.9, 2421.88, 2681.7, 2789.2, 2834.07, 2944.34, 3129.65, 3213.13, 2757.85)), 
    row.names = c(NA, -11L), 
    groups = structure(list(NAICS = 315, .rows = structure(list(1:11), 
    ptype = integer(0), 
    class = c("vctrs_list_of", "vctrs_vctr", "list"))), 
    row.names = 1L, class = c("tbl_df", "tbl", "data.frame"), .drop = TRUE), 
    class = c("grouped_df", "tbl_df", "tbl", "data.frame"))

我完全不知所措。提前谢谢你帮我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-05 11:26:14

我相信你想使用geom_smooth(方法=‘lm’.)带有子集参数,例如:

代码语言:javascript
运行
复制
ggplot(data = Industries, aes(Year, Sales)) +
  theme_bw() +
  theme(axis.text.y = element_blank(),
        axis.ticks.y = element_blank(),
        panel.grid = element_blank()) +
  geom_line(color = "steelblue", size = 1)  +
 geom_smooth(method='lm', formula= y~x, color='red', se=FALSE) + 
 geom_smooth(data=subset(Industries, Year < 2020), method='lm', formula= y~x, color='green', se=FALSE)  

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67400117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档