制作成对、反转的直方图。

4
我想为两组在一组不同测试中进行配对点图直方图,并使两组在y轴上相反显示。使用这个简单的数据集:
dat <- data.frame(score = rnorm(100), group = rep(c("Control", "Experimental"), 50), test = rep(LETTERS[1:2], each=50))

我可以制作像这样的表面点图

ggplot(dat, aes(score, fill=group)) + facet_wrap(~ test) + geom_dotplot(binwidth = 1, dotsize = 1)

分面点图示例

我希望控制点向下而不是向上。使用这个问题和答案,我可以制作一个直方图版本,看起来更或多或少像我想要的。

ggplot() + 
  geom_histogram(data=subset(dat, group=="Experimental"), aes(score, fill="Experimental", y= ..count..)) +
  geom_histogram(data=subset(dat, group=="Control"), aes(score, fill="Control", y= -..count..)) +
  scale_fill_hue("Group")

成对的、反转的直方图 但现在分面已经消失了。我知道我可以使用grid.arrange手动分面,但这将是费力的(我的实际数据集有许多测试,不仅仅是2个),是否有更优雅的解决方案?

两个后续问题:

  1. geom_histogram给我一个警告,说“当ymin!=0时堆叠未定义”,有人知道它有多么“未定义”吗?换句话说,这是我应该担心的事情吗?
  2. 我更喜欢使用点图而不是直方图,但是倒置似乎不适用于点图。为什么呢?有什么想法如何使它工作?

提前致谢!


你尝试过简单地添加 + facet_wrap(~test) ... 吗? - joran
1个回答

3
一份仔细阅读geom_dotplot的内容会带来很多好处:
ggplot() +
  facet_wrap(~test) +
  geom_dotplot(data=subset(dat, group=="Experimental"), aes(score, fill="Experimental")) +
  geom_dotplot(data=subset(dat, group=="Control"), aes(score, fill="Control"),stackdir = "down") +
  scale_fill_hue("Group")

enter image description here

我并不知道stackdir参数的含义,我需要查阅资料。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接