删除ggplot中点周围的边框

emi*_*lys 7 r ggplot2

我有一个散点图,其中包含基于不同数据集的两组不同的点。我希望这些点集中的一组具有边框,因此我使用了 ,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)
Run Code Online (Sandbox Code Playgroud)

带有红色边框的图

我尝试使用stroke更改边框厚度,但这虽然使边框更厚,但stroke = 0仍然给出红色边框

Sir*_*ius 9

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)

Run Code Online (Sandbox Code Playgroud)


bru*_*osm 1

您只需要将colour = Petal.Lengthaes() 放入内部并删除外部的颜色属性即可。

像这样:

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)
Run Code Online (Sandbox Code Playgroud)