旋转直方图条的标签 - 显示方式:labels = TRUE

时间:2015-11-21 22:59:34

标签: r histogram

Here显示了如何使用labels = TRUE标记具有数据值或百分比的直方图条。是否也可以旋转这些标签?我的目标是将它们旋转到90度,因为现在棒上的标签会相互覆盖并且不可读。

PS:请注意我的目标不是旋转y轴标签,因为它显示为例如here

1 个答案:

答案 0 :(得分:2)

使用mtcars,这是一个强力解决方案(虽然它不是非常野蛮):

h <- hist(mtcars$mpg)
maxh <- max(h$counts)
strh <- strheight('W')
strw <- strwidth(max(h$counts))
hist(mtcars$mpg, ylim=c(0, maxh + strh + strw))
text(h$mids, strh + h$counts, labels=h$counts, adj=c(0, 0.5), srt=90)

srt=90是关键,逆时针旋转90度(逆时针?)。

使用

maxhstrhstrw来确定延伸y轴的程度,以便文本不会被剪裁到可见的图形,并且( 2)在条形和旋转文本的开始之间提供一个小垫。 (第一个原因可以通过xpd=TRUE缓解,但可能会影响主标题,如果将上边距设置为0,则会成为一个因素。)

enter image description here

注意:如果使用密度而不是频率,则应使用h$density代替h$counts

编辑:更改了adj,我总是忘记它上面的x / y轴相对于文字保持不管旋转。

编辑#2 :将第一次调用更改为hist,以便字符串高度/宽度可以计算。不幸的是,为了知道实际的高度/宽度,需要绘制两次。