【发布时间】:2012-05-16 11:21:39
【问题描述】:
我需要制作一系列水平分组条形图。 barplot 函数不会自动调整绘图的边距,因此文本会被截断。
graphics.off() # close graphics windows
test <- matrix(c(55,65,30, 40,70,55,75,6,49,45,34,20),
nrow =3 ,
ncol=4,
byrow=TRUE,
dimnames = list(c("Subgroup 1", "Subgroup 2", "Subgroup 3"),
c(
"Category 1 Long text",
"Category 2 very Long text",
"Category 3 short text",
"Category 4 very short text"
)))
barplot(test,
las=2,
beside = TRUE,
legend=T,
horiz=T)
我找不到自动将绘图向右移动的选项,就像 R dotchart 函数那样((SAS中的条形图程序也会自动调整边距)。显然,我总是可以手动调整边距使用 par 函数。
par(mar=c(5.1, 13 ,4.1 ,2.1))
将绘图向右移动
是否可以根据文本的长度自动将绘图向右移动(即调整边距)?
我可以想到 2 个相关的方法来以编程方式执行此操作: 1)计算最长文本字符串的长度并相应调整左边距 2)为数据创建一个点图,以某种方式捕获边距并在条形图中使用相同的边距。
有没有更简单的方法? 谢谢!
【问题讨论】:
标签: r labels margins string-length