修改bin标签直方图

时间:2014-07-30 12:45:23

标签: r histogram axis-labels

我做了以下直方图:

one <- c(2,2,3,3,3,3,4,4,4,4,4,4,5,5,5,5,6,6,7,8)
hist(one, breaks = 3)

enter image description here

而不是x轴上2-8的范围,我需要在x轴上有三个标签来总结这样的值范围:2-3; 4-5; 6-8

如何修改x轴的代码以获得三个标签,并且位于正确的位置?

1 个答案:

答案 0 :(得分:3)

使用以下方法标记范围的中点很容易:

h <- hist(one, breaks = 3, xaxt = 'n')
axis(1, h$mids, h$mids)

但是如果你想让标签成为命名范围的字符串,你必须做更多的工作。看看str(h),了解您需要使用的内容:

> str(h)
List of 6
 $ breaks  : num [1:4] 2 4 6 8
 $ counts  : int [1:3] 12 6 2
 $ density : num [1:3] 0.3 0.15 0.05
 $ mids    : num [1:3] 3 5 7
 $ xname   : chr "one"
 $ equidist: logi TRUE
 - attr(*, "class")= chr "histogram"

您可以使用breaks元素构建轴标签:

h <- hist(one, breaks = 3, xaxt = 'n')
axis(1, h$mids, paste(h$breaks[1:3], h$breaks[2:4], sep=' - '))

enter image description here