R中具有2个分类变量和1个连续变量的线图
一般来说,我对R和统计学都是新手。我试图在一个线形图中绘制ggplot2中的两个分类变量(词性“pos”,条件“trcond”)和一个数字变量(分数“totacc”)R中具有2个分类变量和1个连续变量的线图,r,ggplot2,categorical-data,linegraph,R,Ggplot2,Categorical Data,Linegraph,一般来说,我对R和统计学都是新手。我试图在一个线形图中绘制ggplot2中的两个分类变量(词性“pos”,条件“trcond”)和一个数字变量(分数“totacc”) > df1<-df[, c("trcond", "subtitle", "pos", "totacc")] > head(df1) trcond subtitle pos totacc 7 L New Scene_16 lex 0.250 29 N New Scene_16
> df1<-df[, c("trcond", "subtitle", "pos", "totacc")]
> head(df1)
trcond subtitle pos totacc
7 L New Scene_16 lex 0.250
29 N New Scene_16 lex 0.500
8 L New Scene_25 lex 0.875
30 N New Scene_25 lex 0.666
9 L New Scene_29 lex 1.000
31 N New Scene_29 lex 0.833
但它不起作用,图形上到处都是彩色(蓝色和红色)点,而不仅仅是两条线将它们连接起来。我想发布我得到的图表,因为我没有文字来解释,但这是我的第一篇文章,我似乎无法上传图片
我想得到一个标准的简单双线图,如本页中的蓝色和红色(其中y=账单总额,x=时间(午餐、晚餐),按性别分组):
对于我的数据集,这可能吗?如果是这样的话,我在代码上犯了什么错误?在这里,我试图根据您的数据中的有限样本创建一个数据帧
df1 <- data.frame(trcond=rep(c('L', 'N'), 3),
subtitle=rep('New Scene_29', 6), # Not in use, just a dummy
pos=c('lex', 'lex', 'lex', 'noLex', 'noLex', 'noLex'),
totacc=c(0.250, 0.5, 0.875, 0.666, 1.000, 0.833))
但是,如果应用汇总函数,该函数将计算每个条件的平均值,则将显示正确的绘图:
ggplot(data=df1, aes(x=pos, y=totacc, group=trcond, color=trcond))+
geom_line(stat='summary', fun.y='mean') +
geom_point(stat='summary', fun.y='mean')
同样,这是试图找出数据中的内容。最好的方法是在这里使用dput(head(df1,50))提供一个数据样本,以提供更好的答案 传递到
ggplot
的数据帧summdfo
是如何定义的?如果允许共享数据集,请输入dput(summdfo)
,并将输出放在示例中。这将使其他人有希望重现您的错误。命令dput(head(df1,50))产生大量输出。为了将来的参考,我可以把它全部贴在这里吗?谢谢你的解释,阿曼,现在我明白为什么我的折线图是乱七八糟的了。我刚刚尝试过添加乐趣。y='mean',它产生了我期望的输出!很高兴它能工作:)。关于dput(head(df1,50)),您可以尝试小于50的数字,例如10或20。但是,如果您有许多条件,并且这些条件未涵盖,则可能没有意义。或者,如果允许共享整个数据集,请将变量保存为CSV文件(write.CSV(df1,file='df1.CSV')并在Dropbox上共享。然后按照说明通过安全URL加载CSV文件。
ggplot(data=df1, aes(x=pos, y=totacc, group=trcond, color=trcond))+
geom_line() +
geom_point()
ggplot(data=df1, aes(x=pos, y=totacc, group=trcond, color=trcond))+
geom_line(stat='summary', fun.y='mean') +
geom_point(stat='summary', fun.y='mean')