【问题标题】:Color time-series with numeric variables具有数值变量的颜色时间序列
【发布时间】:2022-01-01 12:59:51
【问题描述】:

我正在绘制两个经济变量的时间序列图:通货膨胀和 PBI 增长。

我的数据如下所示:

# A tibble: 6 × 6
  `Country Name` `Country Code` Year  `CrecimientoPBI (%)` `Inflación (%)` `Desempleo (%)`
  <chr>          <chr>          <chr>                <dbl>           <dbl>           <dbl>
1 Estados Unidos USA            1961                   2.3            1.07             6.7
2 Estados Unidos USA            1962                   6.1            1.2              5.5
3 Estados Unidos USA            1963                   4.4            1.24             5.7
4 Estados Unidos USA            1964                   5.8            1.28             5.2
5 Estados Unidos USA            1965                   6.4            1.59             4.5
6 Estados Unidos USA            1966                   6.5            3.02             3.8

我想添加一个图例,说明每个变量对应的颜色,但鉴于它们是数字变量,我不能这样做。当我像“aes(col = as.factor(...))”那样做时,它也不起作用,我只是得到了所有的数值观察结果。

总结一下,这就是我目前拥有的:

我想添加一个图例,其中一条红线表示“PBI 增长”,蓝线表示“通货膨胀”。

有人知道如何正确操作吗?提前致谢。

【问题讨论】:

    标签: r ggplot2 colors


    【解决方案1】:

    您最好的选择是首先透视您的数据,这样您就可以将系列类型作为一种美学来传递。

    看来你那里也有两种线型,所以我在下面的代表中包含了类似的东西。

    library(tidyverse)
    
    mydat <- 
      read_table("
    CountryName CountryCode        Year         CrecimientoPBI       Inflación       Desempleo
    Estados Unidos  USA            1961                   2.3            1.07             6.7
    Estados Unidos  USA            1962                   6.1            1.2              5.5
    Estados Unidos  USA            1963                   4.4            1.24             5.7
    Estados Unidos  USA            1964                   5.8            1.28             5.2
    Estados Unidos  USA            1965                   6.4            1.59             4.5
    Estados Unidos  USA            1966                   6.5            3.02             3.8")
    
    mydat %>% 
      select(Year, CrecimientoPBI, Inflación, Desempleo) %>% 
      pivot_longer(cols = c(CrecimientoPBI, Inflación, Desempleo)) %>% 
      mutate(type = if_else(name == "Desempleo", "labor-related", "growth-related")) %>% 
      ggplot() + 
      geom_line(aes(x = Year, y = value, color= name, linetype = type)) + 
      geom_point(aes(x = Year, y = value, color= name), size = 2, alpha = 0.4) + 
      theme_classic() +
      theme(legend.position = "right")
    

    reprex package (v2.0.1) 于 2021 年 11 月 23 日创建

    【讨论】:

      猜你喜欢
      • 2017-12-06
      • 2018-05-23
      • 2021-05-10
      • 2014-01-17
      • 1970-01-01
      • 2022-10-24
      • 1970-01-01
      • 2014-06-14
      • 2013-07-13
      相关资源
      最近更新 更多