Чтобы добавить дополнительный элемент к легенде, вы должны добавить его к сюжету.Вы можете сделать это с помощью:
geom_point(aes(alpha = ""), head(df_1, 1),
size = 5, fill = "white", pch = 21) +
Здесь мы добавляем первую точку в ваш набор данных, устанавливая ее fill
и фиктивное значение alpha
(нам нужно установить что-то в aes
, чтобы добавить его влегенда).Я использую ""
, поэтому у нас не будет текста рядом с точкой.
Кроме того, важно добавить эту точку перед основной 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](https://i.stack.imgur.com/5d9iN.png)
PS.Я сделал некоторые изменения в вашем ggplot2
коде:
- Вы можете указать данные и
aes
в течение первого ggplot
вызова. - В слоях geom
aes
- первый аргумент, данные - второй.Так что вместо geom_point(data = df_1, aes(...)
.Вы используете geom_point(aes(...), df_1)
. color = "black"
- настройка по умолчанию - указывать ее не нужно.