【问题标题】:Edit colours in stacked barplot在堆积条形图中编辑颜色
【发布时间】:2013-02-18 13:40:58
【问题描述】:

我有一个基于矩阵的堆叠条形图,默认情况下,列形成条,行形成条的段。现在我想做的是为矩阵中的每个单元格分配堆叠条形图中的特定颜色和/或图案。也就是说,我不希望每一行在条形图中都有相同的颜色。这似乎是barplot() 所假设的。这是否可能以及如何做到这一点?

示例(默认为矩阵的每行分配颜色):

barplot(matrix(c(1:12),ncol=3,nrow=4),col=c(1,2,3,4))

示例(我愚蠢的直观解决方案不起作用):

barplot(matrix(c(1:12),ncol=3,nrow=4),col=matrix(c(1:12),ncol=3,nrow=4))

【问题讨论】:

  • 你确定你想要一个 barplot ,而不是一个颜色矩阵,其中每个单元格 (i,j) 用不同的颜色编码吗?
  • 很确定我想要一个条形图。但是申请如下。我想建立一组“缺失数据模式栏”,如缺失数据文献中所知。参见例如图 4 中(但我的图要复杂得多)sciencedirect.com/science/article/pii/S0376871604002339

标签: r graphics colors


【解决方案1】:

首先,我调整了一个数据集,使其可用于 ggplot,因此它会计算某个值出现的次数。另请注意,每个“因子”(1 到 3、4 到 6、7 到 9)的数字会发生变化,否则它将不起作用:

Test1 <- sample(1:3,40,replace=T)
Test2 <- sample(4:6,60,replace=T)
Test3 <- sample(7:9,80,replace=T)
Test  <- cbind(c(Test1,Test2,Test3),c(rep("A",40),rep("B",60),rep("C",80)))
Test  <- as.data.frame(Test)

下一部分现在相当容易:

require(ggplot2)
Q <- ggplot(Test, aes(V2, fill=as.factor(V1))) + geom_bar()
Q

如果您想要使用可以使用的颜色(找出标志):

Q + scale_fill_manual(values=c("Blue", "White", "Red",
                               "Yellow","Red","Black",
                               "Darkgreen","White","Orange"))

我同意它可能看起来不那么漂亮,但我认为绘制这样的东西也相当罕见......

【讨论】:

  • 谢谢。我如何从我的频率矩阵中得到你的语法?同意这是非标准的。原因是这些条的含义与平常不同(请参见上面的评论)——就像示例中的“标志”一样。
  • >TestA TestA Test
猜你喜欢
  • 2017-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-03
相关资源
最近更新 更多