如何自定义表示平均值,异常值,中位数等的箱图图例?

时间:2018-01-22 16:40:15

标签: r ggplot2 customization legend

我有一个箱形图,根据我的主管的建议,我必须在图例中指出平均值,异常值和中位数,如下图所示:

enter image description here

如何使用ggplot2

执行此操作
library(ggplot2)

A <- 1:20
DF <- data.frame(A)

ggplot(data = DF) +
  geom_boxplot(aes(x = "", y = A))

1 个答案:

答案 0 :(得分:2)

没有直截了当的方式。但您可以使用另一个情节制作自定义图例:

p <- ggplot(mtcars) +
  geom_boxplot(aes(x = factor(cyl), y = mpg))

d1 <- data.frame(x = 1, y = c(1:1000, 1502))
d2 <- data.frame(
  y = c(boxplot.stats(d1$y)$stats, 1502), 
  x = 1, 
  label = c('min', '1st quartile', 'median', '3rd quartile', 'max', 'outlier')
)
leg <- ggplot(d1, aes(x, y)) + geom_boxplot(width = 0.2) + 
  geom_text(aes(x = 1.15, label = label), d2, hjust = 0) +
  xlim(0.9, 1.5) +
  theme_void() + theme(panel.background = element_rect(fill = 'white', color = 1))

p + annotation_custom(ggplotGrob(leg), xmin = 3, xmax = 3.5, ymin = 25, ymax = 35)

enter image description here