使用ggplot2,我绘制了以下密度图:
ggplot(iris) + geom_density(aes(x=Sepal.Width, colour=Species))
字符串颜色图例(对于每个物种值)显示为一个带有一条线的框,但绘制的密度是一条线。是否有方法使图例显示为每个物种条目的彩色线,而不是一个带有一条线的框?
dhxwm5r41#
一种可能性是使用stat_density()和geom="line"。只有在这种情况下,才会只有上面的行。
stat_density()
geom="line"
ggplot(iris)+ stat_density(aes(x=Sepal.Width, colour=Species), geom="line",position="identity")
字符串如果您还需要整个区域(所有线),那么您可以将合并geom_density()与show_guide=FALSE(以删除图例)和stat_density()相结合,而不是仅添加水平线的图例。
geom_density()
show_guide=FALSE
ggplot(iris) + geom_density(aes(x=Sepal.Width, colour=Species),show_guide=FALSE)+ stat_density(aes(x=Sepal.Width, colour=Species), geom="line",position="identity")
型
的数据
djp7away2#
@liesb在答案中使用的show_guide函数在ggplot 3.0.0下不推荐使用;它已被更改为show.legend:
show_guide
show.legend
ggplot(iris) + geom_density(aes(x=Sepal.Width, colour=Species),show.legend=FALSE) + stat_density(aes(x=Sepal.Width, colour=Species), geom="line",position="identity", size = 0) + guides(colour = guide_legend(override.aes=list(size=1)))
字符串
vwhgwdsa3#
ggplot(iris) + stat_density(aes(x=Sepal.Width, colour=Species), geom="line",position="identity")
字符串会想要你想要的。
332nm8kg4#
你可以通过两次绘制这些线,
ggplot(iris) + geom_density(aes(x=Sepal.Width, colour=Species),show_guide=FALSE) + stat_density(aes(x=Sepal.Width, colour=Species), geom="line",position="identity", size = 0) + guides(colour = guide_legend(override.aes=list(size=1)))
字符串ps:抱歉没有评论明显正确的答案--缺乏代表问题:)pps:我意识到线程是相当旧,但它帮助了我今天,所以它可能会帮助别人的某个时候.
fxnxkyjh5#
如果你想填充图例中的框,在geom_density中添加fill,但使用alpha=0并将图例覆盖为alpha=1。像这样:
fill
alpha=0
alpha=1
ggplot(iris) + geom_density(aes(x=Sepal.Width, colour=Species, fill = Species), alpha = 0) + guides(colour = guide_legend(override.aes = list(alpha = 1)))
5条答案
按热度按时间dhxwm5r41#
一种可能性是使用
stat_density()
和geom="line"
。只有在这种情况下,才会只有上面的行。字符串
如果您还需要整个区域(所有线),那么您可以将合并
geom_density()
与show_guide=FALSE
(以删除图例)和stat_density()
相结合,而不是仅添加水平线的图例。型
的数据
djp7away2#
@liesb在答案中使用的
show_guide
函数在ggplot 3.0.0下不推荐使用;它已被更改为show.legend
:字符串
vwhgwdsa3#
字符串
会想要你想要的。
332nm8kg4#
你可以通过两次绘制这些线,
字符串
ps:抱歉没有评论明显正确的答案--缺乏代表问题:)
pps:我意识到线程是相当旧,但它帮助了我今天,所以它可能会帮助别人的某个时候.
fxnxkyjh5#
如果你想填充图例中的框,在geom_density中添加
fill
,但使用alpha=0
并将图例覆盖为alpha=1
。像这样:字符串