首页 > 解决方案 > 在 r ggplot2 中,如何按特定值调整“alpha”值?

问题描述

在 r ggplot2 中,如何按特定值调整“alpha”值?由于打击代码“alpha=region”可以自动更改系列的 alpha 值,但我想为不同的系列分配不同的 alpha 值。我试过“alpha=c(0.1,0.2,0.3)”,这行不通。任何人都可以在这方面提供帮助吗?谢谢!

library(ggplot2)
library(tidyverse)


mydate <- rep(seq.Date(from=as.Date('2021-1-1'),to=as.Date('2021-1-20'),by="1 day"),3)
region <- c("A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","C","C","C","C","C","C","C","C","C","C","C","C","C","C","C","C","C","C","C","C")
sales <- c(22,24,5,5,19,23,1,13,19,19,25,26,8,29,23,21,13,30,6,25,57,50,51,48,48,40,40,47,55,59,57,41,60,52,57,55,42,52,58,43,97,98,88,90,83,90,84,96,95,98,89,80,99,84,83,80,93,82,83,97)
plot_data <- data.frame(mydate,region,sales)
plot_data$region <- factor(plot_data$region,levels=c("A","B","C"))



plot_data %>% ggplot(aes(x=mydate,y=sales,
                         color=region,
                         alpha=region))+
  geom_line()+theme_bw()

标签: rggplot2alpha

解决方案


您将需要使用scale_alpha_manual()

library(ggplot2)
library(tidyverse)

mydate <- rep(seq.Date(from=as.Date('2021-1-1'),to=as.Date('2021-1-20'),by="1 day"),3)
region <- c("A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","B","C","C","C","C","C","C","C","C","C","C","C","C","C","C","C","C","C","C","C","C")
sales <- c(22,24,5,5,19,23,1,13,19,19,25,26,8,29,23,21,13,30,6,25,57,50,51,48,48,40,40,47,55,59,57,41,60,52,57,55,42,52,58,43,97,98,88,90,83,90,84,96,95,98,89,80,99,84,83,80,93,82,83,97)
plot_data <- data.frame(mydate,region,sales)
plot_data$region <- factor(plot_data$region,levels=c("A","B","C"))

plot_data %>% ggplot(aes(x=mydate,y=sales,
                         color=region,
                         alpha=region))+
   geom_line()+theme_bw()+
   scale_alpha_manual(values=c(0.1,0.2,0.3))

推荐阅读