【问题标题】:multiple colors + changing line thickness for geom_ribbon plot多种颜色+改变geom_ribbon图的线条粗细
【发布时间】:2020-08-12 23:19:49
【问题描述】:

我使用ggplot2 创建了一个geom_ribbon 图。是否可以 1) 更改外边缘线的粗细和 2) 更改我的时间序列中选定部分的颜色(例如,更改最后 6 个月的颜色)?

我在下面附上了我的代码

ggplot(data, aes(Date,`Household PSCE`)) +
  geom_ribbon(aes(ymin = min(`Household PSCE`), ymax = `Household PSCE`),fill = '#75002B', alpha = 1, col = 'black') +
  scale_x_date(breaks = seq(as.Date('2018-01-01'),as.Date('2020-12-01'),by = '6 months'), date_labels = '%b-%Y') +
  labs(y = 'Level') +
  theme_bw() 

这里是数据集data的复制品

structure(list(Date = structure(c(17532, 17563, 17591, 17622, 
17652, 17683, 17713, 17744, 17775, 17805, 17836, 17866, 17897, 
17928, 17956, 17987, 18017, 18048, 18078, 18109, 18140, 18170, 
18201, 18231, 18262, 18293, 18322, 18353, 18383, 18414, 18444, 
18475, 18506, 18536, 18567, 18597), class = "Date"), `Household PSCE` = c(51858.04129, 
52195.20397, 52348.49916, 52540.88475, 52832.84411, 52812.54252, 
53177.25125, 53423.63896, 53675.11686, 54041.83913, 54540.90246, 
54931.22325, 54813.24518, 55210.09153, 55152.27409, 55583.02852, 
55852.93463, 54494.31422, 56314.50793, 56642.85461, 56539.32725, 
57371.15939, 57805.9399, 57920.87829, 58668.00067, 58935.24029, 
59148.7084, 58732.7, 58775.2, 58895.9, 59292.5270393218, 59608.3436961823, 
60076.0417060765, 60499.0790861517, 60830.7452080675, 61144.2149262431
)), row.names = c(NA, -36L), class = c("tbl_df", "tbl", "data.frame"
))

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    你可以这样做:

    # add a flag for if it was in the last 6 months
    data$last_6m <- ifelse(data$Date > max(data$Date)-182.5, 'Y', 'N')
    
    # put the fill argument inside the aes() function
    # put the size argument outside the aes() function
    ggplot(data, aes(Date,`Household PSCE`)) +
      geom_ribbon(aes(ymin = min(`Household PSCE`), ymax = `Household PSCE`, fill = last_6m), 
                  size = 2, col = 'black') +
      scale_x_date(breaks = seq(as.Date('2018-01-01'), as.Date('2020-12-01'), by = '6 months'), date_labels = '%b-%Y') +
      scale_fill_manual(values = c(`Y`='#75002B', `N`='yellow')) +
      labs(y = 'Level') +
      theme_bw()  
    

    这在颜色之间确实有一个白色部分,不知道如何处理

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-11
      • 2015-09-07
      • 1970-01-01
      • 1970-01-01
      • 2017-05-16
      • 1970-01-01
      • 1970-01-01
      • 2022-07-05
      相关资源
      最近更新 更多