我正在尝试更改此类图表的样式设置,希望您能对我有所帮助。
R代码:
set_theme(theme_bw)
cglac$pred2<-as.factor(cglac$pred)
ggplot(cglac, aes(x=depth, colour=pred2))
+ geom_bar(aes(y=..density..),binwidth=3, alpha=.5, position="stack")
+ geom_density(alpha=.2)
+ xlab("Depth (m)")
+ ylab("Counts & Density")
+ coord_flip()
+ scale_x_reverse()
+ theme_bw()
产生此图:
这里有几点:
我想要的是使密度线为用符号而不是颜色(虚线,虚线等)分隔的黑白线。
另一件事是直方图本身。如何摆脱酒吧中的灰色背景?
是否可以将条形也更改为黑白符号线(阴影等)?这样它们才能与密度线匹配?
最后但并非最不重要的一点是,由于flip_coord(),我想添加第二个x轴(在本例中为y轴)。我现在看到的是关于密度的。然后,我需要的另一个是来自pred2变量的计数数据。
感谢您的帮助。
最好,莫里茨
有不同的线型:inside aes()
,put linetype = pred2
。要在内部使线条颜色为黑色geom_density
,请添加一个参数color = "black"
。
条的“背景”称为“填充”。在内geom_bar
,您可以设置fill = NA
不填充。一种更常见的方法是在aes()
指定内部用颜色填充条形图fill = pred2
。您可能会考虑按变量进行构面,+ facet_wrap(~ pred2, nrow = 1)
可能看起来非常漂亮。
阴影中的酒吧ggplot
?不,您不能轻易做到这一点。有关其他选项和技巧,请参见此问题的答案。
第二个y轴类似于阴影符号线,ggplot
创建者认为第二个y轴是一个糟糕的设计选择,因此您根本不容易做到。这是一个相关的问题,包括哈德利的观点:
我相信具有单独的y尺度的图(不是相互转化的y尺度)从根本上来说是有缺陷的。
绝对值得考虑他的观点,并问自己这些设计选择是否真的是您想要的。
这是您要执行的操作的内置数据版本:
ggplot(mtcars, aes(x = hp,
linetype = cyl,
group = cyl,
color = cyl)) +
geom_histogram(aes(y=..density.., fill = cyl),
alpha=.5, position="stack") +
geom_density(color = "black") +
coord_flip() +
theme_bw()
我认为您应该改而做。此版本使用构面,而不是使用stacking / colors / linetypes。您似乎是针对黑白的,这在这个版本中根本不是问题。
ggplot(mtcars, aes(x = hp,
group = cyl)) +
geom_histogram(aes(y=..density..),
alpha=.5) +
geom_density() +
facet_wrap(~ cyl, nrow = 1) +
coord_flip() +
theme_bw()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句