我使用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
答案 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")
这给了你:
答案 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()