Как показать выбросы и среднюю линию отдельно от boxplot в легенде ggplot? - PullRequest
3 голосов
/ 08 апреля 2019

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

Мои данные выглядят как

imageNum imageWidth    MinMax    SubAdd      Function
1        100           0.8854797 0.9392620   Height
2        100           0.8810220 0.9367482   Height
3        100           0.9525434 0.9756950   Height
4        100           0.8985018 0.9465377   Height
5        100           0.9174043 0.9569232   Height
6        100           0.8761194 0.9339697   Height

Функция содержит две категории Высота и Площадь.Для каждого imageNum (1-300) существует 10 уровней разрешения (100, 300, 500, ..., 1900).MinMax - это мера, которую я хочу построить.SubAdd на данном этапе не имеет значения.

library(ggplot2)
areas <- read.csv("allResolutionsAreaSorted.csv", header=TRUE)
areas$Function<-"Area"
heights <- read.csv("allResolutionsHeightSorted.csv", header=TRUE)
heights$Function<-"Height"

bound <- rbind(heights, areas)
bound$imageWidth <- as.factor(bound$imageWidth)
bound$Function <- factor(bound$Function, levels=c("Height","Area"))

ggplot(bound, aes(x=imageWidth, y=MinMax, color=Function)) + 
  geom_boxplot(outlier.size = 1, outlier.shape=1) + 
  labs(title="Plot of MinMax Similarity by Image Resolution",
       x="Image Width (Pixels)", y="MinMax Similarity") + 
  theme_light() + scale_color_grey() + 
  theme(plot.title = element_text(hjust = 0.5)) + 
  stat_summary(fun.y=mean, geom="line", lty=3, aes(group=Function),
               position=position_dodge(.75), show.legend=TRUE)

Это график, который я создал до сих пор, я вручную нарисовал 4 нижних элемента легенды так, как мне бы хотелось.

The desired legend.

Редактировать: Мои данные и файл R: https://drive.google.com/open?id=1JSb0wd3NtoWrs_usEigq88kyc-B5rQ4M

...