绘制R中差异的分布

时间:2012-10-24 15:08:33

标签: r plot

我有一个数据集,数字表示某些指标的日常差异。

https://dl.dropbox.com/u/22681355/diff.csv

我想创建一个差异分布图,特别强调罕见的大变化。

我尝试使用hist()函数绘制每个列,但它并没有真正提供数据的详细图片。

例如,绘制数据集的第一列会生成以下图:

https://dl.dropbox.com/u/22681355/Rplot.pdf

我的问题是,这给不常见的大偏差提供了很少的细节。

最简单的方法是什么?

还有关于如何在表格中汇总这些数据的任何建议吗?例如,除了显示最小值,最大值和平均值之外,你会看看分位数吗?还有其他想法吗?

3 个答案:

答案 0 :(得分:2)

您可以使用boxplots来查看数据的分布:

sdiff <- read.csv("https://dl.dropbox.com/u/22681355/diff.csv")

boxplot(sdiff[,-1])

异常值打印为圆圈。

enter image description here

答案 1 :(得分:2)

我支持@Sven关于识别异常值的建议,但是你可以通过指定一组比hist默认选择的密码更密集的断点来更精细化你的直方图。

d <- read.csv('https://dl.dropbox.com/u/22681355/diff.csv', header=TRUE, row.names=1)
with(d, hist(a, breaks=seq(min(a), max(a), length.out=100)))

enter image description here

答案 2 :(得分:1)

Violin plots可能有用:

df <- read.csv('https://dl.dropbox.com/u/22681355/diff.csv')
library(vioplot)
with(df,vioplot(a,b,c,d,e,f,g,h,i,j))

violin plots

我会在转换后的数据上使用箱线图,例如:

boxplot(df[,-1]/sqrt(abs(df[,-1])))

boxplot (data transformed)

显然,直方图在转换后看起来也会更好。