除了转换之外,您还可以操纵直方图本身来了解您的数据。这为您提供了绘图本身保持可读性的优势,并且您可以立即了解中心的分布。假设我们模拟以下数据:
Data <- c(rnorm(1000,5,10),sample(-10000:10000,10))
> summary(Data)
Min. 1st Qu. Median Mean 3rd Qu. Max.
-9669.000 -2.119 5.332 85.430 12.460 9870.000
然后你有几种不同的方法。最容易看到数据中心正在发生的事情,就是绘制数据中心。在这种情况下,假设我对第一个和第三个四分位数之间发生的事情感兴趣,我可以绘制:
hist(Data,
xlim=c(-30,30),
breaks=c(min(Data),seq(-30,30,by=5),max(Data))
main="Center of Data"
)
如果您还想计算尾部,您可以转换数据以折叠尾部并更改轴以反映这一点,如下所示:
- 您将感兴趣范围之外的所有值分配给该范围之外的值
- 您绘制直方图,将所有极值合并到一个 bin 中
- 您使用正确的标签构建 X 轴
- 您
axis.break()
从包plotrix
中使用在 X 轴上添加一些中断,表示不连续轴
为此,您可以使用以下代码:
require(plotrix)
# rearrange data
plotdata <- Data
id <- plotdata < -30 | plotdata > 30
plotdata[id] <- sign(plotdata[id])*35
# plot histogram
hist(plotdata,
xlim=c(-40,40),
breaks=c(-40,seq(-30,30,by=5),40),
main="Untailed Data",
xaxt='n' # leave the X axis away
)
# Construct the X axis
axis(1,
at=c(-40,seq(-30,30,by=10),40),
labels=c(min(Data),seq(-30,30,by=10),max(Data))
)
# add axis breaks
axis.break(axis=1,breakpos=-35)
axis.break(axis=1,breakpos=35)
这给了你:
请注意,您可以通过添加freq=TRUE
到hist()
函数来获得原始频率。