根据两类

时间:2017-01-28 18:19:27

标签: r sorting ggplot2 bar-chart

我四处寻找并找到了 cases similar to mine,但我无法找到以下工作解决方案。

我有一个像这样的数据框:

df <- data.frame(name = rep(c("a","b","c"), each=2), measure_type = rep(c("n1","n2"),3), value=c(20,1,3,3,17,9))


> df
    name measure_type value
  1    a           n1    20
  2    a           n2     1
  3    b           n1     3
  4    b           n2     3
  5    c           n1    17
  6    c           n2     9

我想用ggplot创建一个躲避条形图。 X轴应为名称,y轴应为值fill=measure_type ,并且根据measure_type = n1 的最高值排序的躲闪条形。 最后一个功能(粗体字体)是我正在努力的方向。我根本就不知道如何制作它。

到目前为止我的代码:

plot <- ggplot(df, aes(x = name, y = value, fill = measure_type)) + geom_bar(stat = "identity", position=position_dodge())

产地:

enter image description here

我希望n1的最小值确定躲避条形图的顺序。

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

您可以按value排序,然后将name的顺序设置为name的{​​{1}}的排序顺序。这可以使用measure_type=="n1"管道即时完成:

dplyr

enter image description here