实际项目中碰到该需求,发现ggpattern可实现。话不多说,直接上代码。
R代码
library(ggpattern)
library(ggplot2)
df <- data.frame(level = c("a", "b", "c", 'd'), outcome = c(2.3, 1.9, 3.2, 1))
gg <- ggplot(df) +
geom_col_pattern(
aes(level, outcome),pattern_fill = 'green', # 填充渐变色1
pattern = 'gradient',
pattern_fill2 = 'red', # 填充渐变色2,配合渐变色1实现多色渐变
fill = NA
) +
geom_text(aes(x=level,y=outcome+ .1,label='mytext')) +
theme_bw(18) +
theme(legend.position = 'none')
plot(gg)
ggsave('gradient-fill.png',width = 8,height = 6)
gg <- ggplot(df) +
geom_rect_pattern(
aes(xmin=0,xmax = 1,ymin=0,ymax = 4),
pattern_fill = 'green',
pattern_fill2 = 'red',
fill = NA,
pattern = 'gradient') +
plot(gg)