gpt4 book ai didi

r - 从 geom_point 和 scale_fill_gradient 向图例添加一个点

转载 作者:行者123 更新时间:2023-12-04 01:52:06 25 4
gpt4 key购买 nike

现在已经几个月了,我正在与 ggplot2 一起工作但我仍然很容易陷入基本的事情,因为这里的选择接近无限。

假设我创建了一个简单的图,如下所示:

set.seed(100)
df_1 = data.frame(lat = rnorm(20),
lon = rnorm(20),
x = rnorm(20))


library(ggplot2)
p = ggplot() +

geom_point(data = df_1,
aes(x=lon, y=lat, fill = x),
size = 5, colour = 'black', pch = 21) +

scale_fill_gradient2(low = "green", mid = 'white', high = "yellow",
breaks = c(-1, 0, 1),
labels = c('-1', '0', '1'),
limits = c(-1,1))

print(p)

enter image description here

如何添加带有标题(例如 y)的第二个图例,仅显示那些具有白色背景和黑色轮廓的圆圈之一?

最佳答案

要将额外元素添加到图例中,您必须将其添加到绘图中。你可以这样做:

geom_point(aes(alpha = ""), head(df_1, 1),
size = 5, fill = "white", pch = 21) +

在这里,我们将在您的数据集中添加第一个点,将其设置为 fill和假人 alpha值(我们需要在 aes 内设置一些东西才能将其添加到图例中)。我正在使用 ""所以我们不会在一个点旁边有任何文字。
此外,在 main geom_point 之前添加这一点很重要。因为它会覆盖原点(用白色填充)。您还需要重置 alpha来自 "" 的值至 1并为 alpha 设置想要的图例名称在 labs() .
library(ggplot2)
ggplot(df_1, aes(lon, lat, fill = x)) +
geom_point(aes(alpha = ""), head(df_1, 1),
size = 5, fill = "white", pch = 21) +
geom_point(size = 5, pch = 21) +
scale_fill_gradient2(low = "green", mid = "white", high = "yellow",
breaks = c(-1, 0, 1),
labels = c("-1", "0", "1"),
limits = c(-1, 1)) +
scale_alpha_manual(values = 1) +
labs(alpha = "y")

enter image description here

附注。我对你的 ggplot2 做了一些改动代码:
  • 您可以指定数据和aes内第一ggplot称呼。
  • 在几何层中 aes是第一个参数,数据是第二个。所以,而不是 geom_point(data = df_1, aes(...) .您已使用 geom_point(aes(...), df_1) .
  • color = "black"是默认设置 - 您不需要指定它。
  • 关于r - 从 geom_point 和 scale_fill_gradient 向图例添加一个点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52531787/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com