Использование дискретного сопоставления цветов в ленточной диаграмме с дрожанием поверх ящичковой диаграммы в R

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

library(viridisLite)
str(iris)
iris$Cnum <- rep(1:5, length.out=nrow(iris)) # this are  the events/campains I seek to color
boxplot(Sepal.Length ~ iris$Species, data = iris) 
# following I'm introducing the colors I want to use for the 5 different campaigns
Cnum <- c(1:5)
colhex <- viridis(5)
colDf <- data.frame(Cnum, colhex)
iris.draw <- plyr::join(iris, colDf, by = "Cnum")

stripchart(iris.draw$Sepal.Length ~ iris.draw$Species, vertical = TRUE, data = iris.draw, method = "jitter", add = TRUE, pch = 21, cex=0.7 , col = "black", bg = iris$colhex)```

Мне удается раскрасить точки в ggplot:

  geom_boxplot()+
  geom_jitter(position=position_jitter(0.2), colour=iris.draw$colhex)

Но я все еще борюсь с легендой для цветового отображения...


person LxndrF    schedule 06.02.2020    source источник


Ответы (1)


Я нашел решение (спасибо http://www.sthda.com/): использование библиотеки viridis не viridisLite:

library(viridis)

iris.draw$campaign <- as.factor(iris.draw$Cnum)
ggplot(iris.draw, aes(x=Species, y=Sepal.Length, color=iris.draw$campaign)) +
  geom_boxplot(color="black")+
  geom_jitter(position=position_jitter(0.2))+
  scale_color_viridis(discrete=TRUE)
person LxndrF    schedule 06.02.2020