我刚从R编程开始。我使用RStudio进行考试,我必须以图形方式表示数据集上某些计算的结果。 我有这样的结构:
我想要做的是制作一些直方图,其中每行的平均值为3,而中位数和修剪均值则相同。
第一个问题:这是以图形方式表示此类数据的正确方法吗?或者有一些更好的情节。
第二个问题:有人可以给我代码在x avis上绘制图表3个字符串(" Lobby"," R& D&# 34;," ROE")并且在y轴上包括结果的值的比例,以便使直方图表示投掷中的投资差异,r& d和鱼子获得。
希望我已经足够清楚,如果我没有指明相关的内容,请问我。
答案 0 :(得分:1)
听起来你想要做以下事情。将您的数据放入具有以下格式的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)
答案 1 :(得分:0)
回答问题1:直方图的目的是显示连续数据的密度或频率。如果你想比较row.name列中3个类别的平均值/中位数/修剪均值,我建议使用条形图。我不确定比较单个图表中的均值/中值/修剪均值与观众是否一致,因此生成3个条形图可能是理想的。
回答问题2:如果您的目标是使用多列数据比较row.name列中的3个类别,我建议使用箱形图。我意识到盒子图传统上并不包含均值,但它是比较不同类别数据的最佳可视化之一。有关示例,请参阅r-bloggers.com/box-plot-with-r-tutorial。