2012-10-24 66 views
1

我有一个数据集,其中包含一些数字,用于指示每日差异。绘制R中差异的分布

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

我想创造特别强调了罕见的大变化差异分布图。

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

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

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

我的问题是,这给人非常小细节的罕见大的偏差。

这样做最简单的方法是什么?

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

+0

我不确定你在问什么。让这个问题更具体的一种方法是张贴你已经做出的一些情节,并解释你不喜欢他们的是什么。 –

+0

+1只是因为您提供了数据。 – Roland

回答

2

你可以使用boxplots可视化数据的分布:

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

boxplot(sdiff[,-1]) 

离群打印为界。

enter image description here

2

我回来@斯文的建议识别异常值,但你可以通过指定一个密集的设置断点的比得到的会在你的直方图更细化什么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

+0

任何绘制直方图的方法都与boxplot示例中的所有10列一样? – user1723765

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)

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