【发布时间】:2014-07-30 12:45:23
【问题描述】:
我做了以下直方图:
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)
我需要 x 轴上的三个标签来总结如下值的范围,而不是 x 轴上 2-8 的范围:2-3; 4-5; 6-8
如何修改 x 轴的代码以仅获得三个标签,并位于正确的位置?
【问题讨论】:
标签: 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)
我需要 x 轴上的三个标签来总结如下值的范围,而不是 x 轴上 2-8 的范围:2-3; 4-5; 6-8
如何修改 x 轴的代码以仅获得三个标签,并位于正确的位置?
【问题讨论】:
标签: r histogram axis-labels
使用以下方法很容易标记范围的中点:
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=' - '))
【讨论】:
breaks = 3)。结果,来自hist 的响应对象的breaks 元素有4 个数字(代表条形之间的切点以及全局最小值和最大值)。该表达式中的括号提取前三个元素(每个条的下限)和最后三个元素(每个条的上限)来构造范围标签。