我正在尝试更改此类图表的样式设置,希望您能帮助我。
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变量的计数数据。
感谢您的帮助。
最佳, Moritz的
答案 0 :(得分:0)
有不同的线型:在aes()
内,放linetype = pred2
。要使线条颜色变为黑色,请在geom_density
内添加参数color = "black"
。
&#34;背景&#34;这些酒吧名为&#34; fill&#34;。在geom_bar
内,您可以将fill = NA
设置为无填充。更常见的方法是使用颜色填充条形,在aes()
内指定fill = pred2
。您可以考虑使用变量进行分面,+ facet_wrap(~ pred2, nrow = 1)
可能看起来非常好。
ggplot
中的阴影条?不,你不能轻易做到这一点。有关其他选项和黑客,请参阅the answers to this question。
第二个y轴,类似于阴影符号线,ggplot
创建者认为第二个y轴是一个糟糕的设计选择,所以你根本不能轻易做到。 Here's a related question,包括哈德利的观点:
我认为具有单独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()
而我认为你应该做的事情。此版本使用facet而不是stack / 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()