【发布时间】:2021-10-28 05:15:58
【问题描述】:
我想在 ggplot 中使用颜色和形状美学来表示同一个变量。
我正在使用scale_shape_manual,因为我不喜欢默认形状。
为了确保为每个值分配所需的形状,我给values 一个命名向量。
情节很好,但我有两个传说,一个关于颜色,一个关于形状。
我猜这是因为 shape 有一个命名向量,而 color 有一个未命名向量。
我希望有一个单一的组合颜色/形状图例,就像我使用未命名的矢量一样。有什么建议吗?
我可以将scale_colour_manual 与命名向量一起使用,但想使用scale_colour_brewer 之类的东西。使用labs 为颜色和物种赋予相同的名称并没有帮助(它们已经具有相同的名称)。
library(ggplot2)
data(penguins, package = "palmerpenguins")
ggplot(penguins,
aes(x = body_mass_g, y = bill_length_mm, colour = species, shape = species)) +
geom_point() +
scale_shape_manual(values = c(Adelie = 17, Gentoo = 16, Chinstrap = 6))
由reprex package (v2.0.1) 于 2021 年 8 月 28 日创建
【问题讨论】:
-
您使用的是哪个 ggplot2 版本?因为我用你的代码得到了想要的结果
-
我在 v3.3.5 上得到了相同的结果。这对我来说似乎是出乎意料的行为。
-
我是3.3.3,更新到3.3.5后图例分开了
-
我在 R 4.1.1 中使用 ggplot2 版本 3.3.5
-
这似乎是因为您提供形状值的顺序与它为颜色图例呈现的顺序不同。试试
scale_shape_manual(values = c(Adelie = 17, Chinstrap = 6, Gentoo = 16))。