条形图忽略颜色调色板。

4

我从不同的数据框中计算出各列的均值,并将它们放入另一个数据框中以进行绘图。以下是代码:

 res <- structure(list(`2012` = 6.86537485268066, 
                       `2013` = 5.91282899425944, 
    `2014` = 4.45070377934188),
     .Names = c("2012", "2013", "2014"),    
     row.names = c(NA, -1L), class = "data.frame")
colors<- c("yellow", "red", "green")
ticks <- c(0,8)
barplot(as.matrix(res), ylim=ticks, ylab="Mean Ratio", 
        width=0.5, col=colors, xlab="Year", main="Mean ratio per year")

我得到了一个黄色的单色条形图。

同样适用于:

myMat<-matrix(runif(3), ncol=3) 
barplot(myMat, col=colors)

为什么呢?我已经用了ggplotreshape做了图形,但还是有些困扰。

2个回答

4
当您将类似矩阵的东西(即具有维度或更具体地说,具有dim属性)交给barplot()时,它会根据cols为每个分段着色。在您的情况下,它假设每个值都是其类别中的第一个部分。要将此简单数据框转换为向量,请尝试使用unlist()...
barplot(unlist(res), ylim=ticks, ylab="Mean Ratio", 
        width=0.5, col=colors, xlab="Year",
        main="Mean ratio per year")

3

Barplot假设您使用堆叠条形图,并且只有一个类别。 如果您指定beside=TRUE,那么情况就不再是这样:

barplot(as.matrix(res), ylim=ticks, ylab="Mean Ratio", beside=TRUE,
        width=0.5, col=colors, xlab="Year", main="Mean ratio per year" )

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接