R - 如何为 color2d.matplot 的值分配颜色
R - How to assign color for values with color2d.matplot
我的问题涉及 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 来弄清楚,但运气不佳。
我能想到的一件事是为每个单元格指定颜色。
cellcolors <- unlist(grid)
cellcolors <- ifelse(cellcolors == 0, "white", ifelse(cellcolors == 1, "red", "blue"))
color2D.matplot(grid, ylab="", xlab = "", axes=F, cellcolors = cellcolors)
您可以使用矩阵中的值索引颜色向量。一个更小的例子:
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
我的问题涉及 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 来弄清楚,但运气不佳。
我能想到的一件事是为每个单元格指定颜色。
cellcolors <- unlist(grid)
cellcolors <- ifelse(cellcolors == 0, "white", ifelse(cellcolors == 1, "red", "blue"))
color2D.matplot(grid, ylab="", xlab = "", axes=F, cellcolors = cellcolors)
您可以使用矩阵中的值索引颜色向量。一个更小的例子:
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