如何在ggplot图例中将离群值和均线与boxplot分开?

时间:2019-04-08 20:01:29

标签: r ggplot2 boxplot legend-properties

我正在创建带有多对框的图,我也有一条穿过图的均线,并显示了许多离群值。图例当前显示两个框,但是我希望它显示两个框,两个均值线和两个离群值。

我的数据看起来像

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

0 个答案:

没有答案