问题描述
我想在同一小提琴图中使用不同颜色突出显示异常值,如下所示: 这是一个带有异常值的示例数据,我的代码试图产生结果:
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
但是,如您所见,我不知道如何使两个小提琴图的宽度相同。
谢谢。
解决方法
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))