【发布时间】:2020-08-18 01:06:39
【问题描述】:
我正在使用 R 中的 ggplot2 绘制图表。我想使用一种颜色为面板背景着色,并使用另一种颜色为面板内的矩形着色。我希望网格线覆盖面板和矩形。
如果我不对面板背景着色,感谢 AF7 和 zx8754 here,我有一个很好的解决方案。但是如果我也尝试为面板背景着色,它就不起作用了。
这是一个代表:
library(ggplot2)
t <- c(1,2,3)
a <- c(5,4,1)
b <- c(3,2,4)
df <- data.frame(t,a,b)
ggplot(df) +
geom_rect(xmin=2,xmax=3,ymin=-Inf,ymax=Inf,fill="gray") +
# The code works fine without this next line, but the panel colour is the default (white)
# I want the background colour to be lightblue except for the rectangle
theme(panel.background = element_rect(fill = "lightblue")) +
# Changing NA to "lightblue" in the line below does not work either
theme(panel.background = element_rect(fill = NA),panel.ontop = TRUE) +
theme(panel.grid.minor=element_line(colour="hotpink",size=0.5)) +
theme(panel.grid.major=element_line(colour="green",size=0.5)) +
geom_line(aes(x=t,y=a),colour="red") +
geom_line(aes(x=t,y=b),colour="blue")
【问题讨论】:
-
谢谢 Z.Lin。很好的解决方案。