【发布时间】:2017-06-27 11:56:20
【问题描述】:
我想创建一个图形,由于各种原因,我需要自己指定轴标签。但是当我指定我的标签时(一些有一个数字,一些有两个数字) R 会抑制所有其他的两位数标签,因为它决定没有足够的空间来显示它们,但它会留下所有的一位数标签,留下轴看起来不平衡。
有没有办法在整个轴上一致地抑制标签,基于是否需要跳过它们?注意:我有很多不同比例的地块,所以我一直在寻找可以用于所有地块的东西——我不想为每个地块渲染所有标签,或者跳过每个地块中的所有其他标签。对于某些绘图而不是其他绘图,抑制标签将是可取的。如果这是 R 选择为特定情节做的事情,我只想始终跳过所有其他标签。
(这是我的意思的示例figure。我想要的是在 x 轴上也抑制“6%”标签。) 示例代码:
library(labeling)
df <- data.frame("estimate" = c(9.81, 14.29, 12.94),
"lower" = c(4.54, 6.25, 5.12),
"upper" = c(12.85, 20.12, 15.84))
ticks <- extended(min(df$lower), max(df$upper), m = 5, only.loose = TRUE,
Q=c(2, 5, 10))
png("examplePlot.png", width = 1200, height = 900, pointsize = 10, res = 300)
bars <- barplot(df$estimate, horiz = TRUE, col = "white", border = NA,
xlim = c(min(ticks), max(ticks)), xaxt = "n", main = "Example")
arrows(df$lower, bars, df$upper, bars, code = 3, angle = 90, length = 0.03)
points(df$estimate, bars, pch = 20)
tickLabels <- paste(ticks, "%", sep = "")
axis(1, at=ticks, labels = tickLabels, cex.axis=1)
axis(2, at = bars, labels = c("c", "b", "a"), lwd = 0, las = 2)
dev.off()
【问题讨论】:
标签: r plot axis-labels