Here显示了如何使用labels = TRUE
标记具有数据值或百分比的直方图条。是否也可以旋转这些标签?我的目标是将它们旋转到90度,因为现在棒上的标签会相互覆盖并且不可读。
PS:请注意我的目标不是旋转y轴标签,因为它显示为例如here
答案 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度(逆时针?)。
maxh
,strh
和strw
来确定延伸y轴的程度,以便文本不会被剪裁到可见的图形,并且( 2)在条形和旋转文本的开始之间提供一个小垫。 (第一个原因可以通过xpd=TRUE
缓解,但可能会影响主标题,如果将上边距设置为0,则会成为一个因素。)
注意:如果使用密度而不是频率,则应使用h$density
代替h$counts
。
编辑:更改了adj
,我总是忘记它上面的x / y轴相对于文字保持不管旋转。
编辑#2 :将第一次调用更改为hist
,以便字符串高度/宽度可以计算。不幸的是,为了知道实际的高度/宽度,需要绘制两次。