繁体   English   中英

ggplot2中的自定义图例:如何不加填充?

[英]Custom legend in ggplot2: how to fill without factors?

我正在进行一项性格调查,该调查将为参与者生成分数报告。 我想让它们尽可能容易阅读和理解,因此我正在为被调查的性状生成一条正态曲线,并显示一条线,显示该人落在曲线上的位置。

首先,让我们生成一些数据:

sample <- as.data.frame(rnorm(1000, 0, 1))
names(sample) <- "trait"
score <- mean(sample$trait)

我的问题是图例-我无法弄清楚如何自定义图例以显示1)当我不绘制多个因素的图形时填充的“填充”颜色,以及2)显示参与者得分的线。

我可以接近:

ggplot(sample, aes(x=trait)) +
 geom_density(fill="blue") +
 geom_density(aes(fill="Population")) +
 geom_vline(aes(xintercept=score, color="You")) +
 geom_vline(xintercept=score, color='red',
         linetype="solid",size=1.5) +
 scale_colour_manual(values=c('Population'='blue', 
                                    'You'='red'))

图表图片1

在此处输入图片说明

但这不使用指定的颜色,并且在图例中具有多余的“颜色”和“填充”文本。

如果我将geom_density美学更改为颜色而不是填充,则其他所有内容均保持不变...

geom_density(aes(color="Population")) +

...这将正确应用颜色,但不会用蓝色填充图例中的“ Population”框。

图表图片2

在此处输入图片说明

理想情况下,我想将“ Population”框填充为蓝色,并删除图例中“ You”行周围的红色框。 我该如何实现?

我希望可以使用。

ggplot(sample, aes(trait)) +
    geom_density(aes(fill = "Population")) +
    geom_vline(aes(xintercept = mean(trait), color = "You")) +
    theme(legend.title = element_blank()) +
    scale_color_manual(values = "red", breaks = "You") +
    scale_fill_manual(values = "blue", breaks = "Population")

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM