R:ggplot堆积条形图,其中条形高度对应于最大值

时间:2018-04-01 03:15:23

标签: r ggplot2 bar-chart

df2 <- data.frame(supp=rep(c("VC", "OJ"), each=3),
                dose=rep(c("D0.5", "D1", "D2"),2),
                len=c(6.8, 15, 33, 4.2, 10, 29.5))    
ggplot(data=df2, aes(x=dose, y=len, fill=supp)) +
      geom_bar(stat="identity")

> df2
  supp dose  len
1   VC D0.5  6.8
2   VC   D1 15.0
3   VC   D2 33.0
4   OJ D0.5  4.2
5   OJ   D1 10.0
6   OJ   D2 29.5

enter image description here

此处,每个条形的高度对应于2个len组的supp的总和。我希望条形的高度对应于2个len值中较大的一个。例如,D0.5栏的高度应为6.8,而D的高度应为15.

1 个答案:

答案 0 :(得分:0)

首先按max len dose进行过滤。

df2 %>% group_by(dose) %>%
  filter(len == max(len)) %>%
  ggplot(aes(x=dose, y=len, fill=supp)) +
  geom_bar(stat="identity")

修改

啊,好像你在寻找position_dodge()

df2 %>% 
  ggplot(aes(x=dose, y=len, fill=supp)) +
  geom_bar(stat="identity", position = position_dodge(width = 0))

enter image description here

您可以通过在width中指定geom_bar来调整条形的宽度(例如,width = 1.5)。