gpt4 book ai didi

r - 显示特定颜色

转载 作者:行者123 更新时间:2023-12-04 19:54:38 26 4
gpt4 key购买 nike

我正在研究颜色分类。我正在初始化一个具有特定颜色的矩阵,以便我可以获得一个 16x16 的红色或蓝色或绿色矩阵。代码如下:

 library(rgl)
color1 <- function()
{
n <- 3
m <- 16
a <- list("numeric", n)
wij <- matrix(list(), nrow = m, ncol = m)

#Initailize the weight matrix
for(x1 in 1:m)
{
for(x2 in 1:m)
{
a<-c(1,255,1)
# a<- c(255,1,1)
#a<-c(1,1,255)
wij[[x1,x2]] <- a
rgl.spheres(x=x1, y=x2, col=wij[[x1,x2]], radius = 1 )
}
}
}
color1()

对于这段代码,我应该得到一个 16x16 的绿色矩阵,而我得到的是黑色。注释行的方法相同。
1, 1, 255 我变黑了而不是蓝了。
255, 1, 1 我变黄了,而不是变红了。

对于两个不同的值(1,1,255 和 1,255,1),我得到黑色,我希望分别得到蓝色和绿色。

我需要指定从 0:255 开始的值,但如果我给出零,我会收到以下错误:

Error in col2rgb(colors) : numerical color values must be positive

所以我指定的值从 1:255 开始。请任何人帮助我获得特定值所需的颜色?

最佳答案

将函数中的最后一个命令更新为:

rgl.spheres(x=x1, y=x2, col=rgb(t(wij[[x1,x2]]), maxColorValue = 255), radius = 1 )

解释:
R 中的颜色指定为对应于预定义颜色 (colors()) 或十六进制 RGB 编码“#RRGGBB”的字符串。在 col= 参数中指定一个数字将从调色板返回一种颜色。

cols <- function(a) image(1:5, 1, as.matrix(1:5), col=a, axes=FALSE , xlab="", ylab="")
a <- 1:5
cols(a)

enter image description here

颜色编号 255 是黄色。在您的函数中,RGB 值 c(1, 255, 1) 被解释为 c("black", "yellow", "black")

a <- c(1, 255, 1); cols(a) 

enter image description here

因此,我们需要使用 rgb() 函数从它们的 RGB 强度创建 R 颜色。该函数接受三个强度的矩阵。向量被强制转换为默认为 R 的矩阵,按列填充数据。我们需要一行强度,最简单的方法是转置矩阵。

a <- rgb(t(a), maxColorValue = 255)
a
[1] "#01FF01"
cols(a)

enter image description here

这样,你也可以使用零。

关于r - 显示特定颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37918696/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com