直方图使用多个类别的不同时间点的均值

时间:2016-08-11 12:04:19

标签: r ggplot2 histogram mean categories

我使用R来分析我的硕士论文,我有一个年龄组别1到6的数据,我有不同的时间点(1到7)我取每个时间点的平均值。所以现在我有一个6乘8的表,我想制作一个直方图,说将年龄类别放在x轴上,将不同的时间点放在y轴上进行比较。

数据:

library(reshape2) 

new.df<-melt(data,id.vars="Group.1")
names(new.df)=c("Group.1","variable","value") 

library(ggplot2)

ggplot(data=new.df, aes(x=Group.1, y=value,fill=(variable)))+
    geom_histogram()

我使用了以下命令:

{{1}}

起初我收到的错误代码是&#34;错误:未知参数:binwidth,bin,pad&#34; 所以我尝试指定,现在我收到错误代码&#34;错误:stat_bin()不得与y美学一起使用。&#34;

有人能帮助我吗?我想要的是这样的:

Draw histograms per row over multiple columns in R

(第一个顶部有多种颜色)

谢谢。

ZAS

2 个答案:

答案 0 :(得分:1)

好的,首先你要找的是一个简单的“分组条形图”,而不是直方图。有关说明,请参阅here。除此之外,这是一个使用您的玩具数据的简单示例:

首先我们重塑数据,假设您已将您粘贴的数据读作df <- read.table("clipboard", header = T)。请注意,我使用tidyr的{​​{1}}函数来重塑数据,这类似于gather()

reshape

现在,只需要在ggplot中获取组和颜色就可以了。

# with dplyr & tidyr
library(dplyr)
library(tidyr)

df <- df %>% 
   gather(key, value, -Group.1)

# without dplyr
df <- reshape2::melt(df, id.var = "Group.1", variable.name = "key")

这给了你:

Grouped Bar Chart

答案 1 :(得分:0)

也许这些可以帮助您入门:

#scatterplot
ggplot(data=new.df, aes(x=Group.1, y=value,colour=variable))+
       geom_point()

#barchart
ggplot(data=new.df, aes(x=Group.1, y=value,fill=variable))+
       geom_bar(stat="identity",position = "dodge")

#line + scatterplot
ggplot(data=new.df, aes(x=Group.1, y=value,colour=variable))+
       geom_point()+
       geom_line()