我想设计一个包含36组3个水平条的条形图。每组3个旁边应该有一个标签。
我的代码非常混乱(我第一次使用R),所以我希望它可以使用一些虚拟数据......
反正:
Transcomp <- matrix(nrow=3, ncol=36) # matrix
colnamesbarplot <- colnames(transComp) # should be used as barplot labels
barplot <-
barplot(transComp,
space=c(0,2),
legend.text=TRUE,
beside=TRUE,
horiz=TRUE,
density=NA,
col=c("red1","red4","green3"),
xlab="crimes per 100,000 inhabitants",
ylab="districts and years",
axes=TRUE
)
我找不到允许我直接在栏旁边显示列名的参数(我不在乎它们是在栏的左边还是右边)...... 问题可能是条形图的数量?
add text to horizontal barplot in R, y-axis at different scale?和labeling in barplot()以及Axis labels for each bar and each group in bar charts with dodged groups中的回答并没有让我得到我想要的地方......
感谢您的帮助!
答案 0 :(得分:14)
查看?barplot
个参数names.arg
。
一些示例数据:
transComp <- matrix(sample(3*36), nrow=3, ncol=36)
colnamesbarplot <- as.character(1:36)
条形图:
barplot(transComp,space=c(0,2),legend.text=TRUE,beside=TRUE,horiz=TRUE,
density=NA,
col=c("red1","red4","green3"),
xlab="crimes per 100,000 inhabitants",
ylab="districts and years",
axes=TRUE, names.arg=colnamesbarplot, cex.names=0.5, las=1)
由于您要绘制许多列,因此应设置cex.names
以使标注更小。
参数las=1
将标签旋转90度。