Использование цветового картографирования в графическом редакторе с джиттером на блокпосте в R - PullRequest
0 голосов
/ 06 февраля 2020

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

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)

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

1 Ответ

0 голосов
/ 06 февраля 2020

Я нашел решение (спасибо 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)
...