首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >一个很简单的R直方图?

一个很简单的R直方图?
EN

Stack Overflow用户
提问于 2014-08-30 14:21:47
回答 2查看 828关注 0票数 0

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

我想做的是用每行的3个平均值做一些直方图,中间和修剪后的平均值也是一样的。

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

第二个问题:可以给我一个代码,在x avis上画一个图("Lobby","R & D"," roe "),在y轴上画一个包含结果的值的标度(​​),以便得到代表在投资、研发和投资方面的差异的柱状图。

希望我说得够清楚了,如果我没有具体说明相关的事情,请问我。

EN

回答 2

Stack Overflow用户

发布于 2014-08-30 16:58:45

听起来你想做下面的事。使用具有以下格式的csv调用bar.csv中的数据:

代码语言:javascript
运行
复制
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)以及这里列出的命令

代码语言:javascript
运行
复制
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数据):

代码语言:javascript
运行
复制
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命令,并添加功能以显示以下方法:

代码语言:javascript
运行
复制
boxplot(count ~ spray, data = InsectSprays, col = "lightgray")
means <- tapply(InsectSprays$count,InsectSprays$spray,mean)
points(means,col="red",pch=18)
票数 1
EN

Stack Overflow用户

发布于 2014-08-30 14:41:06

针对问题1:直方图的目的是显示连续数据的密度或频率。如果您试图比较row.name列中三个类别的平均值/中值/修剪平均值,我建议使用条形图。我不确定比较单个图中的均值/中值/修剪平均值是否与观看者相一致,因此生成3条图可能是理想的。

在回答问题2:如果您的目标是使用多列数据比较row.name列中的三个类别,我建议使用方框图。我意识到,方框图传统上并不包括平均值,但它是比较跨类别数据的最佳可视化方法之一。关于一个例子,请参见R-bloggers.com/box-plot教程

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25583356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档