【问题标题】:R ggplot2 grouping bar plotsR ggplot2分组条形图
【发布时间】:2016-07-11 05:11:56
【问题描述】:

我对 ggplot2 很陌生,但正在努力学习。我有长格式的数据,它看起来像这样:

Year    School Type     Stat                Value
2011    Middle School   Tobacco Use         7.5
2011    Middle School   Cigarettes          4.3
2011    Middle School   Smokeless Tobacco   2.2
2011    Middle School   Hookahs             1
2011    Middle School   E-cigarettes        0.6
2011    High School     Tobacco Use         24.3
2011    High School     Cigarettes          15.8
2011    High School     Smokeless Tobacco   7.3
2011    High School     Hookahs             4.1
2011    High School     E-cigarettes        1.5

全套在这里:http://pastebin.com/VUvWhC4x

我想做的是制作两张图表,一张用于中学,一张用于高中。我可以很容易地把它分成这些组,所以让我们试试中学。我在这里使用了一个 deplry 动词。

middle = as.data.frame(filter(data,School.Type=="Middle School"))

我希望图表看起来像每个统计数据将沿 x 轴移动,然后年份将在该年的一行中单独绘制。然后继续下一个统计数据和同样的事情。年份是 2011-2014 年。它非常模拟这张图:

我能做的最好的就是这段代码:

ggplot(middle, aes(factor(Stat), Value, fill = factor(Year)) + 
+geom_bar(stat="identity", position = "dodge") + 
+scale_fill_brewer(palette = "Set1")

产生

我想将这些按统计数据分组,然后从 2011 年到 2014 年对每个统计数据进行分组。有什么想法吗?

【问题讨论】:

    标签: r ggplot2 bar-chart


    【解决方案1】:

    你很接近 - 你希望 Stat 映射到 x 轴,Value 映射到 y。然后你填写Year 并指定应该避开条形(即并排)。

    这与您发布为所需输出的图非常接近。

    library(ggplot2)
    
    ggplot(middle, aes(x=Stat, y=Value, fill=factor(Year))) +
      geom_bar(stat='identity', position ='dodge', color='black') +
      scale_fill_brewer(palette=1) +
      theme_classic()
    

    【讨论】:

    • 完美!太感谢了!! :)
    猜你喜欢
    • 2015-09-08
    • 2021-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-02
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多