R 为什么赢了';ggplot2图例是否结合了手动填充和比例值? 预期行为

R 为什么赢了';ggplot2图例是否结合了手动填充和比例值? 预期行为,r,ggplot2,R,Ggplot2,如果我使用ggplot2创建一个绘图,并使用单独的(例如)形状和填充比例来描绘数据,我希望图例将在“白色”填充点(看起来是空心的)和“黑色”填充点(看起来不是空心的)之间描绘 在下面的示例代码中,Windows的图例项应为白色空心点,Linux的图例项应为黑色填充点 实际行为 “操作系统”下的图例项描述了两个视觉上完全相同的点,这两个点明显不同的操作系统,其点在图形上以不同的填充方式清晰地绘制。在下面的示例代码中,Windows和Linux在图例中显示为无法区分的黑色空心点,尽管它们在绘图本身上

如果我使用ggplot2创建一个绘图,并使用单独的(例如)形状和填充比例来描绘数据,我希望图例将在“白色”填充点(看起来是空心的)和“黑色”填充点(看起来不是空心的)之间描绘

在下面的示例代码中,Windows的图例项应为白色空心点,Linux的图例项应为黑色填充点

实际行为 “操作系统”下的图例项描述了两个视觉上完全相同的点,这两个点明显不同的操作系统,其点在图形上以不同的填充方式清晰地绘制。在下面的示例代码中,Windows和Linux在图例中显示为无法区分的黑色空心点,尽管它们在绘图本身上正确地绘制了不同的图形

样地

示例代码
必须覆盖图例中使用的形状,如中所示

因此,使用您的示例代码(顺便说一句,感谢您提出了清晰、可重复的问题),您需要做的就是:

p + guides(fill = guide_legend(override.aes = list(shape = 21)))
这给了你想要的:


非常感谢-我的头痛刚刚好;)这个解决方案似乎对我有效,但很难掌握;覆盖图例图标的形状如何给您带来预期的颜色行为?一个非常晚的问题由@ecoe回答。默认的图例形状是16(一个实心圆),我假定它没有填充颜色,但完全以轮廓颜色(即颜色)绘制。形状21(开放圆)用填充颜色填充,轮廓颜色由颜色参数指定。
R version 2.15.1 (2012-06-22)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)

locale:
[1] C/en_US.UTF-8/C/C/C/C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] ggplot2_0.9.2.1       reshape2_1.2.1        plyr_1.7.1            ProjectTemplate_0.4-2
[5] testthat_0.7         

loaded via a namespace (and not attached):
 [1] MASS_7.3-21        RColorBrewer_1.0-5 colorspace_1.1-1   dichromat_1.2-4   
 [5] digest_0.5.2       evaluate_0.4.2     grid_2.15.1        gtable_0.1.1      
 [9] labeling_0.1       memoise_0.1        munsell_0.4        proto_0.3-9.2     
[13] scales_0.2.2       stringr_0.6.1      tools_2.15.1      
p + guides(fill = guide_legend(override.aes = list(shape = 21)))