0

我需要对箱线图(子组)进行分组,并根据子组所属的组对它们(组)重新排序。

我使用的 R 脚本是:

data<-read.delim("clipboard")

p <- ggplot(data, aes(Class2,cM))

p <- p + geom_boxplot(aes(fill = factor(Class1))) +
     geom_jitter(alpha = 0.4, position = position_jitter(height = .01, width = .35)) +
     coord_flip()

我生成了这个(Class1=group;Class2=subgroup)。

分组箱线图

请从这里下载数据表。

如您所见,图表中没有组织组。如果您能帮我解决这个问题,我将不胜感激。由于某些子组的值不超过一个,因此我们看不到颜色来指示它们属于哪个组。如果您可以添加标签以显示哪些子组在哪个组中,那就太好了。

谢谢!

4

1 回答 1

0

请以文本格式提供数据,而不是 xls。

解决方案 1:将 Class2 转换为因子并按所需顺序设置级别

data$Class2 <- factor(
    data$Class2, 
    levels = c("group1:b", "group1:c", "group2:a")
)

解决方案 2:使用 facet_wrap 而不是填充

ggplot(data, aes(x= Class2, y = cM)) + geom_boxplot() + 
  geom_jitter(alpha = 0.4, position = position_jitter(height = .01, width = .35)) +
  coord_flip() + 
  facet_wrap(~Class1)
ggplot(data, aes(x= Class2, y = cM)) + geom_boxplot() + 
  geom_jitter(alpha = 0.4, position = position_jitter(height = .01, width = .35)) +
  coord_flip() + 
  facet_wrap(~Class1, scales = "free_x")
于 2013-08-26T08:43:16.827 回答