在带状图中使用离散色映射,在R中的箱线图顶部出现抖动

时间:2020-02-06 07:15:35

标签: r plot boxplot jitter

比方说,我想以一种简单的图形方式查看抽样活动对变量测量的影响,一种方法是在箱形图顶部的带状图中为事件着色。下面是一个示例代码,部分起作用。非常感谢您的帮助。

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 :(得分:0)

我找到了一个解决方案(感谢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)