【发布时间】:2018-08-02 17:45:32
【问题描述】:
我创建了一个男性和女性寿命的箱线图,每个性别的数据点根据物种用一条线连接起来。 我的问题是,如何为每个物种分配独特的线条颜色?由于我的数据集非常大,如果我可以自动为每个物种分配 x 个随机颜色,那就太好了。 同样出于某种原因,我的 x 轴标签不会像我想要的那样出现。我希望轴用男性标记为“性别”,然后为每个箱形图标记为女性标签。
使用这些数据:
MaleFemale.max.longevity Sex Binomial
195 Male Agouti_paca
192 Female Agouti_paca
196 Male Alopex_lagopus
126 Female Alopex_lagopus
240 Male Amblonyx_cinereus
276 Female Amblonyx_cinereus
254 Male Aotus_azarai
174 Female Aotus_azarai
310 Male Arctictis_binturong
324 Female Arctictis_binturong
430 Male Cacajao_calvus
276 Female Cacajao_calvus
314 Male Callicebus_moloch
244 Female Callicebus_moloch
223 Male Callithrix_pygmaea
181 Female Callithrix_pygmaea
164 Male Canis_adustus
130 Female Canis_adustus
这段代码(取自本网站上的另一个问题 - 非常有帮助):
Longevity <- log10(News$MaleFemale.max.longevity)
# Graph plots
r <- ggplot(News, aes(x = Sex, y = Longevity, fill = Sex)) +
scale_x_discrete(c(labels = unique("Female","Male"), each = 2))
r <- r + geom_boxplot(color="grey40", outlier.alpha=0.0)
r <- r + stat_summary(fun.y=mean,geom="point",pch="-",color="white",size=8,
position = position_dodge(width=0.75))
r <- r + geom_point(size=2, alpha=0.6, aes(group=Sex), data=News, position =
position_dodge(width=0.75))
r <- r + geom_line(aes(group = Binomial), alpha = 0.6, colour = "black", data
= News)
r <- r + scale_fill_manual(values=c("#969696","#74c476"))
r <- r + theme(axis.text.x = element_text(colour = "black"),
axis.text.y = element_text(colour = "black"),
axis.title.x = element_blank(),
axis.title.y = element_text(colour = "black"),
legend.position = "none")
r
这是我迄今为止能够制作的:
【问题讨论】:
-
标记 x 轴:
+ xlab("Sex") -
要自动标注行,你需要在
aes中包含color,即:geom_line(aes(group = Binomial, color = Binomial))