2017-03-24 18 views
0

を見つけるためにIは、RGB色三角形をエドワードのおかげを有する小さな修飾を有するhereに答える:使用RGB色三角形()色

plot(NA,NA,xlim=c(0,1),ylim=c(0,1),asp=1,bty="n",axes=F,xlab="",ylab="") 
segments(0,0,0.5,sqrt(3)/2) 
segments(0.5,sqrt(3)/2,1,0) 
segments(1,0,0,0) 
# sm - how smooth the plot is. Higher values will plot very slowly 
sm <- 500 
for (y in 1:(sm*sqrt(3)/2)/sm){ 
    for (x in (y*sm/sqrt(3)):(sm-y*sm/sqrt(3))/sm){ 
## distance from base line: 
d.red = y 
## distance from line y = sqrt(3) * x: 
d.green = abs(sqrt(3) * x - y)/sqrt(3 + 1) 
## distance from line y = - sqrt(3) * x + sqrt(3): 
d.blue = abs(- sqrt(3) * x - y + sqrt(3))/sqrt(3 + 1) 
points(x, y, col=rgb(d.red, d.green, d.blue), pch=19) 
    } 
} 

Iはまた、(例えば(232, 103, 101)用)を一度RGBコード色を有し、これらの座標上のこのRGB色の三角形に大きな黒い点があります。私はそうggtern()

# install.packages("ggtern") 
library(ggtern) 
df = data.frame(x=232, y=103, z=101) 
breaks = seq(0,1,by=0.2) 
#breaks = c(0,255) 
ggtern(data = df, aes(x, y, z)) + 
geom_point(color = black) + 
# I use 255 as the triangle limit, because the RGB code is an [0, 255] interval. 
limit_tern(breaks=breaks,labels=255*breaks) + 
scale_color_gradient(rgb(d.red, d.green, d.blue)) 

を使用したい理由です

は、私の黒点は、良好な座標に位置していない、と私のRGBの三角形の色はggternのbackbround上ではありません。私はまだggternとは甘いものではありません。前にデータ変換を行う必要がありますか?

私のRGBデータは次のようにオブジェクト(RGB0)にあります:私はade4パッケージからtriangle.plotとオーバー方法を発見した任意のヘルプ

答えて

0

ため

おかげ

head(RGB0) 
     R G B 
[1,] 87 92 69 
[2,] 87 92 69 
[3,] 88 93 70 
[4,] 88 93 70 
[5,] 89 94 71 
[6,] 89 94 71 
... 

そして、コード:

library(ade4) 

data2= as.data.frame(RGB0) 
head(RGB0) 

data2$R <- RGB0[,1]/255  
data2$G <- RGB0[,2]/255 
data2$B <- RGB0[,3]/255 
head(data2) 


triangle.plot <- triangle.plot(data2, clab = 0, cpoi = 2, addmean = F, show = FALSE, addaxes = F, scale = F) 
points(triangle.plot, pch = 19, cex = 1, col = nacreHEX) 

ここに結果: triangle.plot result

関連する問題