如何在 geom_violin 图中为某些点例如异常值使用不同的填充颜色?

问题描述

我想在同一小提琴图中使用不同颜色突出显示异常值,如下所示:

enter image description here

这是一个带有异常值的示例数据,我的代码试图产生结果:

df[[col for col in cols if col not in df.columns]] = None
df
Out[1]: 
   A     B     C
0  1  None  None
1  2  None  None

enter image description here

但是,如您所见,我不知道如何使两个小提琴图的宽度相同。

有什么方法可以实现使用不同的填充颜色来标记异常值。

谢谢。

解决方法

dat <- cars[1:30,"dist"]  # original data
dat <- c(dat,c(190,186,210,220,218)) # add outliers
df <- data.frame(x= "",y = dat)
df$outlier <- ifelse(df$y %in% boxplot.stats(df$y)$out,"red","black")
# plotting
ggplot(df,aes(x,y)) +
geom_violin(data = df,aes(fill = outlier))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...