Создать легенду в R с идентичными значениями цвета RGB как заговор? - PullRequest
5 голосов
/ 31 октября 2011

Я создал простую диаграмму рассеяния в R с конкретными значениями цвета RGB, например:

plot(shuffled, p_val, pch=19, col="black", xlim=c(0,100), ylim=c(0,1))
points(ri, p_val, pch=19, col=rgb(96,123,139, 50, maxColorValue=255), 
       xlim=c(0,100), ylim=c(0,1))
points(somo, p_val, pch=19, col=rgb(225,64,5, 50, maxColorValue=255), 
       xlim=c(0,100), ylim=c(0,1))

Я хотел бы использовать те же значения цвета в приведенном выше коде для создания легенды фигуры. Код, который я использую, выглядит следующим образом, но я не могу понять, как подобрать цвета точек графика.

legend("topright", c("Shuffled", "Riffled", "Somosome"), cex=1.0, bty="n", 
       c("black",col=rgb(96,123,139, 50, maxColorValue=255),col=rgb(225,64,5, 50, maxColorValue=255))

Может ли кто-нибудь помочь? Что не так с моей легендой? Спасибо!

Ответы [ 2 ]

7 голосов
/ 31 октября 2011

Это работает для меня:

plot(1:3,
    col=c("black",rgb(96,123,139, 50, maxColorValue=255),
               rgb(225,64,5, 50,maxColorValue=255)),pch=19)

legend("topright", c("Shuffled", "Riffled", "Somosome"), cex=1.0, bty="n",
   col=c("black",rgb(96,123,139, 50, maxColorValue=255),
      rgb(225,64,5, 50, maxColorValue=255)),pch=19)

Обратите внимание, что вам нужно указать один вектор col =, размер ваших ярлыков, и вам также нужно иметь здесь pch = В качестве альтернативы вы можете использовать fill = [vector of colors] для рисования заполненных полей.

1 голос
/ 31 октября 2011

Проблема в том, что вы соединяете ключевое слово R color, "black", с шестнадцатеричными цветными ключами.Примерно так должно работать:

colvec <- rgb(rbind(t(col2rgb("black")), ## this is obviously just 0, 0, 0
                    c(96,123,139),
                    c(225,64,5)),
              alpha=50,max=255)

plot(shuffled, p_val, pch=19, col=colvec[1], xlim=c(0,100), ylim=c(0,1))
points(ri, p_val, pch=19, col=colvec[2], 
       xlim=c(0,100), ylim=c(0,1))
points(somo, p_val, pch=19, col=colvec[3], 
       xlim=c(0,100), ylim=c(0,1))
legend("topright", c("Shuffled", "Riffled", "Somosome"), cex=1.0, bty="n",
       col=colvec)
...