带有多个变量的ggplot和条形图

时间:2017-12-02 08:15:59

标签: r ggplot2 bar-chart

我已经在这个问题上工作了好几天,但我无法解决这个问题。 我有一个矩阵

gesamt
     year <10 10-60 60-100 100-150 >150
2001 2001 376    57      7       0    0
2002 2015 322    60     10       2    0
2003 2016 324    59      5       2    0

我转换为data.frame: df&lt; - data.frame(gesamt)

融化它:

df.molten <- melt(df, id.vars='year', value.name='mean')

df.molten
   year variable mean
1  2001      <10  376
2  2015      <10  322
3  2016      <10  324
4  2001    10-60   57
5  2015    10-60   60
6  2016    10-60   59
7  2001   60-100    7
8  2015   60-100   10
9  2016   60-100    5
10 2001  100-150    0
11 2015  100-150    2
12 2016  100-150    2
13 2001     >150    0
14 2015     >150    0
15 2016     >150    0

我想得到这样的解决方案:

enter image description here

但我无法策划它(没有足够的时间研究ggplot2),无论我尝试过什么。

任何提示?

1 个答案:

答案 0 :(得分:1)

这是一项简单的任务,应该能够做到:

library(tidyverse)

df %>% 
  ggplot(aes(year, mean, fill = variable)) +
  geom_col(position = position_dodge())

由于您的数据集与年份之间存在较大差距,因此您可以将年份列转换为带有df$year <- as.character(df$year)的字符,并且您的图中不会有那么大的差距。