ggplot2中多色线性渐变(linearGradient)背景无法显示的问题求助
ggplot2中多色线性渐变(linearGradient)背景无法显示的问题求助
我最近在折腾给ggplot2的箱线图背景加个垂直方向的多色线性渐变,结果试了好几台电脑(其中一台的图形性能还挺强的),渐变背景都死活不出来。虽然linearGradient的帮助文档里提过不是所有图形设备都支持它,但我总觉得大概率是我代码哪里写得不对,而不是单纯的设备兼容问题,所以来求助大家!
先给大家看我模拟的测试数据和完整代码:
library("ggplot2") library("grid") # 生成模拟数据 a <- rnorm(100, 0.50, 0.1) b <- rnorm(100, 0.55, 0.1) c <- rnorm(100, 0.3, 0.1) d <- rnorm(100, 0.60, 0.15) A <- data.frame(n=c(1920:2019), grp=rep("X",100), vers=rep("P",100), dat=a) B <- data.frame(n=c(1920:2019), grp=rep("X",100), vers=rep("Q",100), dat=b) C <- data.frame(n=c(1920:2019), grp=rep("Y",100), vers=rep("P",100), dat=c) D <- data.frame(n=c(1920:2019), grp=rep("Y",100), vers=rep("Q",100), dat=d) DL <- merge(A, B, all=TRUE) DL <- merge(DL, C, all=TRUE) DL <- merge(DL, D, all=TRUE) # 尝试创建渐变并绘图 p <- ggplot(DL, aes(x=grp, y=dat, fill=vers)) + geom_boxplot() + ylim(-0.5, 1) + theme( panel.background = element_rect( fill=linearGradient( colour=c("red", "orange", "yellow", "green", "blue"), stops=c(0, 0.2, 0.4, 0.6, 0.8), x1=0, x2=0, y1=0, y2=1 # 垂直方向渐变 ) ) ) + labs(title="demo") print(p) ggsave("C:/temp/demo.png")
我还试过参考其他思路,比如单独定义一个渐变对象再调用,结果还是没用。另外我也换过不同的图形设备测试:RStudio的内置绘图窗口、导出png/pdf格式,甚至换了Windows和Linux的电脑,都看不到渐变背景,只有默认的灰色或者白色背景。
有没有大佬能帮我看看,是不是我对linearGradient的用法理解错了?或者ggplot2里给panel加渐变背景有什么特殊的注意事项呀?




