добавление цветовой палитры в базовую функцию графика R - PullRequest
1 голос
/ 02 февраля 2020

Вопрос: Я пытался использовать поддон Wes_Anderson, чтобы дать мне 1 цвет для видов ... поэтому первая строка делает это, но, поскольку он использует базовые цвета R, я не могу их контролировать. Я использую базовый набор данных Iris для R.

graph = plot(data$Petal.Width, data$Petal.Length, pch = 16, col =( data$Species))

Я пытался добавить их с помощью этого ..

graph + scale_fill_manual (values = wes_palette("Zissou1", n = 3, type = "discrete"))

Причина, по которой я хочу добавить их, заключается в том, что я пытаюсь указать, что я делаю для легенды, закодированной ниже. Я пытаюсь убедиться, что виды соответствуют моему поддону wes_anderson ... Я не понимаю, почему я не могу указать цвета из столбца col = data $ Species при использовании поддона wes_anderson

legend("topleft", inset = 0.05,
legend=paste(rep(c("setosa","versicolor","virginica"))),
       col = wes_palette("Zissou1", 3, type = c("discrete")),
       pch = 16,
       #this is for a box around the legend
       bty="black")

1 Ответ

1 голос
/ 02 февраля 2020

Вы можете назначить палитру в качестве меток видового фактора и затем преобразовать ее в строку символов.

library(wesanderson)

pal <-  wes_palette("Zissou1", length(levels(iris$Species)))

with(iris,
     plot(
       Petal.Width,
       Petal.Length,
       pch = 16,
       col = as.character(factor(Species, labels = pal))
     ))

legend("topleft", inset = 0.05,
       legend=levels(iris$Species),
       col =  pal,
       pch = 16,
       #this is for a box around the legend
       bty="black")

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...