8

我想设计一个带有 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
            )

我找不到允许我直接在条形旁边显示列名称的参数(我不在乎它们是在条形的左侧还是右侧)......问题可能是条形图?

文本添加到 R 中的水平条形图中的答案,不同比例的 y 轴?在 barplot()Axis 标签中为每个条形图和条形图中的每个组加上躲避组的标签并不能让我到达我想要的位置......

感谢您的任何帮助!

4

1 回答 1

16

?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 度。

于 2013-06-06T12:45:06.490 回答