You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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加渐变背景有什么特殊的注意事项呀?

火山引擎 最新活动