一个非常简单的直方图与R?

时间:2014-08-30 14:21:47

标签: r plot dataset histogram rstudio

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

enter image description here

我想要做的是制作一些直方图,其中每行的平均值为3,而中位数和修剪均值则相同。

第一个问题:这是以图形方式表示此类数据的正确方法吗?或者有一些更好的情节。

第二个问题:有人可以给我代码在x avis上绘制图表3个字符串(" Lobby"," R& D&# 34;," ROE")并且在y轴上包括结果的值的比例,以便使直方图表示投掷中的投资差异,r& d和鱼子获得。

希望我已经足够清楚,如果我没有指明相关的内容,请问我。

2 个答案:

答案 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

显示以下图表:

stacked facet 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