穿过密度图(r)X轴的非预期线
我试图找出为什么我有一条紫色的线出现在x轴上,这条线的颜色与我的传说中的“Prypchan,Lida”相同。我查看了数据,没有发现任何问题穿过密度图(r)X轴的非预期线,r,ggplot2,density-plot,R,Ggplot2,Density Plot,我试图找出为什么我有一条紫色的线出现在x轴上,这条线的颜色与我的传说中的“Prypchan,Lida”相同。我查看了数据,没有发现任何问题 ggplot(LosDoc_Ex, aes(x = LOS)) + geom_density(aes(colour = AttMD)) + theme(legend.position = "bottom") + xlab("Length of Stay") + ylab("Distribution") + labs(title = "LO
ggplot(LosDoc_Ex, aes(x = LOS)) +
geom_density(aes(colour = AttMD)) +
theme(legend.position = "bottom") +
xlab("Length of Stay") +
ylab("Distribution") +
labs(title = "LOS Analysis * ",
caption = "*exluding Residential and WSH",
color = "Attending MD: ")
通常我会等待一个可复制的例子,但在这种情况下,我会说基本的解释非常简单:
geom_density()
创建一个多边形,而不是直线
使用ggplot2自己包中的样本数据集,我们可以在密度图下方观察到相同的直线,覆盖x轴和y轴。线条的颜色仅取决于哪个绘图位于其他绘图之上:
p <- ggplot(diamonds, aes(carat, colour = cut)) +
geom_density()
解决方法2:也可以获取原始绘图生成的数据,并使用geom_line()
进行绘图。颜色需要重新映射到图例值,但:
lp <- layer_data(p)
if(is.factor(diamonds$cut)) {
col.lev = levels(diamonds$cut)
} else {
col.lev = sort(unique(diamonds$cut))
}
lp$cut <- factor(lp$group, labels = col.lev)
ggplot(lp, aes(x = x, y = ymax, colour = cut)) +
geom_line()
lp有两个简单的解决方法。首先,如果您只需要线条而不需要填充区域,只需将geom_line()
与密度统计一起使用即可:
库(ggplot2)
ggplot(钻石,aes(x=克拉,y=统计(密度),颜色=切割))+
几何线(stat=“密度”)
请注意,要使其工作,我们需要将y
美学设置为stat(density)
其次,如果您希望填充线下的区域,可以使用ggridges包中的geom\u density\u line()
。它的工作原理与geom_density()
完全相同,但绘制的是一条线(下面是填充区域),而不是多边形
库(ggridges)
ggplot(钻石,aes(x=克拉,颜色=切割,填充=切割))+
几何密度线(α=0.2)
由(v0.2.1)于2018年12月14日创建。欢迎使用堆栈溢出!目前,这个问题是离题的,因为它要求调试帮助,而没有可复制的示例。请将问题放在一起,并对其进行编辑。这里有一些R的特别提示:非常感谢。这是我的第一篇stack文章,将来将提供一个可复制的示例。你的变通方法很有效!另一个解决方法是GGRIGES软件包中的geom\u density\u line()。我写这篇文章是因为我厌倦了在这个问题上需要变通办法。或者,如果不需要填充区域,只需使用geom_line()
和stat=“density”
。
lp <- layer_data(p)
if(is.factor(diamonds$cut)) {
col.lev = levels(diamonds$cut)
} else {
col.lev = sort(unique(diamonds$cut))
}
lp$cut <- factor(lp$group, labels = col.lev)
ggplot(lp, aes(x = x, y = ymax, colour = cut)) +
geom_line()