【发布时间】:2017-07-20 15:34:40
【问题描述】:
我正在寻找一种方法,让回归线和其他我可能希望覆盖在图表上的东西从调色板中获取下一个可用颜色。例如,假设我在mtcars 数据集中绘制mpg 与cyl。我将每个cyl 视为不同的样本,因此我使用了定性调色板,但我在燃油效率是气缸的线性函数的假设下添加了一条回归线。
library(ggplot2)
p <- ggplot(mtcars, aes(cyl, mpg)) +
geom_violin(aes(fill = factor(cyl))) +
geom_jitter(width = 0.5) +
geom_smooth(method = "lm") +
theme(legend.position = "none") +
scale_x_continuous(breaks = c(4,6,8))
p
你得到这个情节:
我希望回归线的颜色与主题保持一致。我可以算出这个系列的下一个颜色应该是C77CFF,但是如果我改变主题呢?
p + scale_fill_brewer(palette = "Set1")
有没有办法让geom_smooth 自动抓取调色板中的下一个颜色?或者只是抓住第 N 个颜色怎么样?在探索性数据分析之后,我知道我的数据中有多少类,并且我可以对它进行硬编码。我只是想要一种更简单的方法来浏览不同的调色板。
【问题讨论】:
-
您可以使用
scale_*_manual进行颜色和填充,使用scales::brewer.pal或scales::hue.pal提供的手动颜色。例如,scales::brewer_pal(palette = "Spectral")(5)生成一个包含五种颜色的向量,“#D7191C”“#FDAE61”“#FFFFBF”“#ABDDA4”“#2B83BA”。 -
布赖恩,我认为这不能回答我的问题。我总是可以手动更改填充/颜色,但我正在寻找一种方法让
geom_smooth根据我添加的任何调色板自动更新。这可能吗?