我刚开始做R程序。我使用RStudio进行考试,我必须用图形表示数据集上某些计算的结果。我有一个这样的结构:

我想做的是用每行的3个平均值做一些直方图,中间和修剪后的平均值也是一样的。
第一个问题:是用图形表示这种数据的正确方法吗?或者有更好的情节。
第二个问题:可以给我一个代码,在x avis上画一个图("Lobby","R & D"," roe "),在y轴上画一个包含结果的值的标度(),以便得到代表在投资、研发和投资方面的差异的柱状图。
希望我说得够清楚了,如果我没有具体说明相关的事情,请问我。
发布于 2014-08-30 16:58:45
听起来你想做下面的事。使用具有以下格式的csv调用bar.csv中的数据:
Dept Mean Median Trimmed_Mean
Lobby 0.008 0.0018 0.0058
R & D 6.25 3.2 4.78
ROE 19.08 16.66 16.276您可以使用library(ggplot2)和library(reshape)以及这里列出的命令
dat.m<-read.csv("bar.csv")
dat.m<-melt(dat.m,id.vars="Dept")
ggplot(dat.m, aes(x = Dept, y = value,fill=variable)) + geom_bar(stat='identity')+
facet_wrap(~ Dept, ncol = 3,scales="free_y") #facet wrapped
ggplot(dat.m, aes(x = Dept, y = value,fill=variable)) + geom_bar(stat='identity')
#stacked bar若要显示以下图形:


正如zhaoy所说,历史记录适用于原始数据(通常)--而您拥有的是摘要数据。此外,您还可以使用library(ggplot2)生成这样的盒图摘要图(使用ggplot2库中的spray数据):
library(ggplot2)
p<-qplot(spray,count,data=InsectSprays,geom='boxplot')
p<-p+stat_summary(fun.y=mean,shape=1,col='red',geom='point')
print(p)或者简单地使用具有相同数据的标准boxplot命令,并添加功能以显示以下方法:
boxplot(count ~ spray, data = InsectSprays, col = "lightgray")
means <- tapply(InsectSprays$count,InsectSprays$spray,mean)
points(means,col="red",pch=18)发布于 2014-08-30 14:41:06
针对问题1:直方图的目的是显示连续数据的密度或频率。如果您试图比较row.name列中三个类别的平均值/中值/修剪平均值,我建议使用条形图。我不确定比较单个图中的均值/中值/修剪平均值是否与观看者相一致,因此生成3条图可能是理想的。
在回答问题2:如果您的目标是使用多列数据比较row.name列中的三个类别,我建议使用方框图。我意识到,方框图传统上并不包括平均值,但它是比较跨类别数据的最佳可视化方法之一。关于一个例子,请参见R-bloggers.com/box-plot教程。
https://stackoverflow.com/questions/25583356
复制相似问题