我有一个散点图,其中包含基于不同数据集的两组不同的点。我希望这些点集中的一组具有边框,因此我使用了 ,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仍然给出红色边框
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)
您只需要将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)