旋转直方图条的标签 - 显示方式:labels = TRUE
Rotate labels for histogram bars - shown via: labels = TRUE
Here 展示了如何使用 labels = TRUE
用数据值或百分比标记直方图条。是否也可以旋转这些标签?我的目标是将它们旋转 90 度,因为现在条形图上的标签会相互覆盖并且不可读。
PS:请注意,我的目标不是像显示的那样旋转 y 轴标签,例如here
使用 mtcars
,这是一个 brute-force 解决方案(虽然不是很粗鲁):
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度counter-clockwise(anti-clockwise?).
maxh
、strh
和 strw
用于 (1) 确定将 y-axis 扩展多少,以便文本不被裁剪到可见图,和 (2) 在栏和旋转文本的开头之间提供一个小垫。 (第一个原因可以通过 xpd=TRUE
来缓解,但它 可能 影响主标题,如果您将上边距设置为 0,这将是一个因素。)
注意:如果使用密度而不是频率,则应使用 h$density
而不是 h$counts
。
编辑:更改adj
,我总是忘记它上面的x/y轴无论旋转如何都保持相对于文本。
编辑 #2:将第一次调用更改为 hist
,因此字符串 height/width 为 calculate-able。不幸的是,需要绘制两次才能知道实际的 height/width.
Here 展示了如何使用 labels = TRUE
用数据值或百分比标记直方图条。是否也可以旋转这些标签?我的目标是将它们旋转 90 度,因为现在条形图上的标签会相互覆盖并且不可读。
PS:请注意,我的目标不是像显示的那样旋转 y 轴标签,例如here
使用 mtcars
,这是一个 brute-force 解决方案(虽然不是很粗鲁):
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度counter-clockwise(anti-clockwise?).
maxh
、strh
和 strw
用于 (1) 确定将 y-axis 扩展多少,以便文本不被裁剪到可见图,和 (2) 在栏和旋转文本的开头之间提供一个小垫。 (第一个原因可以通过 xpd=TRUE
来缓解,但它 可能 影响主标题,如果您将上边距设置为 0,这将是一个因素。)
注意:如果使用密度而不是频率,则应使用 h$density
而不是 h$counts
。
编辑:更改adj
,我总是忘记它上面的x/y轴无论旋转如何都保持相对于文本。
编辑 #2:将第一次调用更改为 hist
,因此字符串 height/width 为 calculate-able。不幸的是,需要绘制两次才能知道实际的 height/width.