ggplot中geom_point(scale_colour_manual)中的填充和边框颜色

Posted

技术标签:

【中文标题】ggplot中geom_point(scale_colour_manual)中的填充和边框颜色【英文标题】:Fill and border colour in geom_point (scale_colour_manual) in ggplot 【发布时间】:2013-04-04 15:45:45 【问题描述】:

我正在使用 ggplot 绘制散点图。我想要具有特定颜色和填充的点(例如,plotcolour="blue", fill="cyan4"),但我找不到方法。到目前为止,我所要做的是:

ggplot(df, aes(own,method)) +
  panel.configuration +
  scale_shape_identity() +  #to use the 'plot' shape format.
  geom_point(aes(color = factor(label)), position = "jitter",size=3) +  

(在之前的geom_point我尝试添加shape=21,就像我在plot中所做的那样)

  scale_colour_manual(values=c("A"="chocolate3","B"="cyan4")) +
  scale_fill_manual(values=c("A"="green", "B"="red")) + #DOES NOTHING...
  xlim(7,47) + ylim(7,47)+ ... etc.

这就是我在没有“shape=21”的情况下得到的结果

这是我添加“shape=21”时得到的。在这两种情况下,它都会忽略 scale_fill

我也尝试在 geom_point 中添加fill=c("blue","red"),但 R 抱怨:“错误:设置美学的长度不兼容:形状、大小、填充”。

关于如何获得它有什么建议吗?我的代码中的scale_fill 有什么问题?

非常感谢!

数据(df)看起来像:

21 15 A
24 16 A
24 17 A
28 14 A
24 15 A
22 15 A
20 18 A
24 18 A
34 9 B
38 12 B
41 19 B
42 13 B
36 12 B
40 17 B
41 14 B
37 12 B
40 13 B
37 15 B
35 15 B

【问题讨论】:

【参考方案1】:

您必须使用来自21 to 25 的形状。这些是具有colourfill 属性的:

ggplot(df, aes(own, method)) + 
     geom_point(colour="white", shape=21, size = 4, 
     aes(fill = factor(label))) + 
     scale_fill_manual(values=c("blue", "cyan4"))

如果您还想为colour 提供不同的颜色,那么:

ggplot(df, aes(own, method)) + 
      geom_point(aes(colour=factor(label), 
      fill = factor(label)), shape=21, size = 4) + 
      scale_fill_manual(values=c("blue", "cyan4")) + 
      scale_colour_manual(values=c("white", "black"))

【讨论】:

谢谢阿伦。您的建议效果很好,但它会以相同的颜色填充所有点。是否可以像plot 那样为每个指定特定颜色?我会对其进行编辑以提供数据。 是的。有可能的。我只是在寻找数据来创建情节.. :) @PGreen,试试这个编辑。如果在aes(.) 中插入colour,则可以对colourscale_colour_manual(values=...) 执行相同的操作(已编辑)。 颜色/填充是根据您的因素水平分配的。 完美!而已!最后,只有 2 种颜色是有意义的,但我想添加边框,因为我应用了抖动和边框有助于可视化拥挤区域。颜色和填充的不同颜色只是一个额外的细节,只是为了尊重我在plot 中的旧脚本的格式。非常感谢阿伦,真的很有帮助和效率 ;-)

以上是关于ggplot中geom_point(scale_colour_manual)中的填充和边框颜色的主要内容,如果未能解决你的问题,请参考以下文章

ggplot中geom_point(scale_colour_manual)中的填充和边框颜色

ggplot2 根据因子设置 geom_point 大小

ggplot2 + geom_point + 与大小成比例的气泡(错误“离散值提供给连续比例”)

使用带有geom_point的for循环将点添加到现有ggplot对象中

如何更改geom_point中的颜色或ggplot中的线条[重复]

如果有时该子集有意为空,如何在ggplot中添加第二个geom_point?