【问题标题】:Removing borders around points in ggplot删除ggplot中点周围的边框
【发布时间】:2021-03-16 18:01:47
【问题描述】:

我有一个散点图,其中包含基于不同数据集的两组不同点。我希望其中一组点具有边框,因此我使用了pch = 21,它将点更改为带有边框和内部的圆圈。

我希望另一组点没有边框(例如,删除下面示例中的红色边框)。在下面的示例中,我仍然为这些点添加了pch = 21,因为如果我不使用它,那么我将不得不使用 color = Petal.Length,而不是使用 fill = Petal.Length 作为(内部的)点我不想用colour而不是fill,因为我想让两组点共享一个图例。

有没有办法使用pch = 21 然后去掉边框?

iris2 <- iris %>% 
  mutate(Sepal.Length = Sepal.Length + 1)

ggplot() +
  geom_point(data = iris,
             aes(x = Sepal.Length,
                 y = Sepal.Width, 
                 fill = Petal.Length),
             pch = 21, colour = "red", size = 3) +
  geom_point(data = iris2,
           aes(x = Sepal.Length,
               y = Sepal.Width, 
               fill = Petal.Length),
           pch = 21, colour = "black", size = 3)

我曾尝试使用stroke 更改边框粗细,但这会使边框变粗,stroke = 0 仍然会给出红色边框

【问题讨论】:

  • 您正在添加带有colour = 'red' 的边框,那么为什么不直接删除呢?
  • @Oliver 谢谢 - colour = red 只是改变了边框的颜色 - 我添加了这样更清楚我想删除哪些。添加边框是因为pch = 21,它将点更改为带有边框和内部的圆圈。如果我不使用它,那么我将不得不使用colour = Petal.Length,而不是fill = Petal.Length 作为点(内部)的颜色,如果我这样做,那么两组点没有共享传奇

标签: r ggplot2


【解决方案1】:

stroke=NA 将其完全删除


ggplot() +
  geom_point(data = iris,
             aes(x = Sepal.Length,
                 y = Sepal.Width,
                 fill = Petal.Length),
             pch = 21, colour = "red", size = 3, stroke=NA) +
  geom_point(data = iris2,
           aes(x = Sepal.Length,
               y = Sepal.Width,
               fill = Petal.Length),
           pch = 21, colour = "black", size = 3)

【讨论】:

  • 谢谢 - 我不敢相信我没有尝试过。尝试了很多版本的0、空白等
【解决方案2】:

你只需要把colour = Petal.Length放在aes()里面,去掉外面的color属性。

像这样:

ggplot() + 
     geom_point(data = iris, 
           aes(x = Sepal.Length, 
                y = Sepal.Width, 
                fill = Petal.Length, 
                colour = Petal.Length), 
           pch = 21, size = 3) + 
     geom_point(data = iris2, 
           aes(x = Sepal.Length, y = Sepal.Width, fill = Petal.Length), 
                pch = 21, colour = "black", size = 3)

【讨论】:

  • @italianmarmite 和这个例子展示的 - ggplot 很聪明 - 即使你有不同的形状,它也会结合颜色和填充图例......所以你可以使用形状= 16
猜你喜欢
  • 2019-06-25
  • 2019-12-02
  • 1970-01-01
  • 2011-07-14
  • 1970-01-01
  • 1970-01-01
  • 2016-07-07
  • 2011-12-23
  • 1970-01-01
相关资源
最近更新 更多