【问题标题】:R - How to assign color for values with color2d.matplotR - 如何使用 color2d.matplot 为值分配颜色
【发布时间】:2018-11-16 10:50:02
【问题描述】:

我的问题涉及 plotrix 包中的 color2d.matplot 函数。该函数记录在here

我有这个输出:

由此代码产生:

library(plotrix)

# model parameters
spaces <- 400
agents<- 300
prop_black = 0.5
prop_white = 1 - prop_black
tolerance <- 0.6

# creating matrix of types
group<-c(rep(0,spaces-agents),rep(1,prop_black*agents),rep(2,prop_white*agents))
grid<-matrix(sample(group,400,replace=F), ncol=20)

# plotting
color2D.matplot(grid, ylab="", xlab = "", axes=F)
plot(runif(100,0,1),ylab="Happy",xlab="Time",col="white",ylim=c(0,1))

请注意,我的 grid 仅包含 0、1、2 值。 我该如何做到这一点:

  • 0 的所有值都映射到白色方块。
  • 1 的所有值都映射到红色方块。
  • 2 的所有值都映射到蓝色方块。

我试图通过查看these examples 来解决这个问题,但运气不佳。

【问题讨论】:

  • 第二个plot 与您的问题有什么关系? ;)

标签: r plot plotrix


【解决方案1】:

您可以使用矩阵中的值来索引颜色向量。一个更小的例子:

color2D.matplot(m, cellcolors = c("white", "red", "blue")[m + 1])


数据:

set.seed(7)
m <- matrix(sample(0:2, 9, replace = TRUE), nrow = 3, ncol = 3)
m
#      [,1] [,2] [,3]
# [1,]    2    0    1
# [2,]    1    0    2
# [3,]    0    2    0

【讨论】:

    【解决方案2】:

    我能想到的一件事是为每个单元格指定颜色。

    cellcolors <- unlist(grid)
    cellcolors <- ifelse(cellcolors == 0, "white", ifelse(cellcolors == 1, "red", "blue"))
    color2D.matplot(grid, ylab="", xlab = "", axes=F, cellcolors = cellcolors)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-28
      • 2020-08-29
      • 1970-01-01
      • 2021-09-18
      • 2020-08-20
      • 2019-11-22
      • 2021-03-03
      相关资源
      最近更新 更多