手动更改ggplot的颜色

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手动更改ggplot的颜色相关的知识,希望对你有一定的参考价值。

我正在尝试手动更改ggplot中的颜色,以便我的箱图颜色编码成组(例如Qilai和Nagigi相同的颜色)。我运行了以下代码,它运行得很好。

B1 <- ggplot(tissue_A, aes(x=Site, y=d15N.permil)) + geom_boxplot() + 
  geom_signif(comparisons = list(c("Suva", "Nagigi")), y_position = 14.3, map_signif_level=TRUE) +  
  geom_signif(comparisons=list(c("Suva", "Qilai")),
  y_position = 13.8, tip_length = 0.03, vjust=0.2, map_signif_level=TRUE)

然后我尝试重新运行它,除了颜色外,一切都有效。我使用以下代码更改了代码以分离出来:

B1 + labs(title = "T. jarbua Tissue", y = "δ15 permil") + scale_fill_manual(values = c("yellow","yellow", "red","red"), name = "Site")

ggplot(tissue_A, aes(x=Site, y=d15N.permil)) + geom_boxplot() + 
  geom_signif(comparisons = list(c("Suva", "Nagigi")), y_position = 14.3, map_signif_level=TRUE) +  geom_signif(comparisons=list(c("Suva", "Qilai")), y_position = 13.8, tip_length = 0.03, vjust=0.2, map_signif_level=TRUE) + scale_fill_manual(values = c("yellow","yellow", "red","red"), name = "Site")

我仍然拥有一切,但颜色有效。我的R工作室是最新的,我尝试重新启动。有什么可能阻止我的代码运行吗?

谢谢!

答案

我相信你在调用fill时错过了aes的论点。请参阅this tutorial:中的以下示例

library(ggplot2)

ToothGrowth$dose <- as.factor(ToothGrowth$dose)
bp<-ggplot(ToothGrowth, aes(x=dose, y=len, fill=dose)) +
  geom_boxplot()
bp

产生以下图,按剂量着色。

ToothGrowth coloured by dose

你应该在调用fill=Site时添加aes

以上是关于手动更改ggplot的颜色的主要内容,如果未能解决你的问题,请参考以下文章

调整ggplot代码以更改所有文本颜色的快捷方式-R

无法更改ggplot中线条的颜色

如何更改使用 ggplot2 制作的绘图的背景颜色

ggplot2:更改条形图中每个方面的颜色

更改 ggplot2 中条形图和图例的默认颜色

更改 ggplot2 中特定数据的颜色