包中的函数返回一个带有我想更改的预设颜色的 ggplot。
例如,让我们模拟该图:
library(ggplot2)
df <- data.frame(x = rnorm(1000))
p <- ggplot(df, aes(x=x)) +
geom_density(fill="#2196F3")
p
Run Code Online (Sandbox Code Playgroud)
这是一个蓝色填充的密度图。
我想后验地改变它的颜色。
我试过这样做:
p + scale_fill_manual(values=c("#4CAF50"))
p
Run Code Online (Sandbox Code Playgroud)
但它不会改变任何东西。
我也试过:
p <- p + geom_density(fill="black")
p
Run Code Online (Sandbox Code Playgroud)
但这在前一层之上添加了一层,而不会改变它。
我也试图深入研究 ggplot 对象,但我在那里迷路了。
有没有什么方便的方法可以改变后验几何的属性?
谢谢
尝试这个:
#this is blue
p <- ggplot(df, aes(x=x)) +
geom_density(fill="#2196F3")
#convert to red
p$layers[[1]]$aes_params$fill <- 'red'
p
Run Code Online (Sandbox Code Playgroud)
填充颜色被保存p$layers[[1]]$aes_params$fill并可以通过这种方式进行修改。