Я пытаюсь отредактировать легенду для эстетики размера и установить размер шкалы для этой эстетики, но, похоже, не могу сделать то и другое.
Вот шаги:
#create the map
library(ggplot2)
world <- broders("world")
#generate a dataframe of geolocated data with attributes
points <- data.frame(lat = seq(0, 50, 10),
lon = seq(0, 50, 10),
type = c("y", "n", "y", "n", "y", "n"),
impact.x.r = seq(0, 50, 10))
points
lat lon type impact.x.r
1 0 0 y 0
2 10 10 n 10
3 20 20 y 20
4 30 30 n 30
5 40 40 y 40
6 50 50 n 50
Затем я отображаю точки в ggplot - все работает:
ggplot() +
world +
geom_point(data = points, aes(x = lon, y = lat, col = type, size = impact.x.r)) +
scale_color_discrete(name = "types of birds", breaks = c("n","y"), labels = c("no", "yes")) +
scale_size_continuous(name = "impact")
Однако, как только я пытаюсь установить размер шкалы, используя: + scale_size()
, я получаю ошибку.Я также теряю форматирование, которое я сделал для эстетической легенды размера:
ggplot() +
world +
geom_point(data = points, aes(x = lon, y = lat, col = type, size = impact.x.r)) +
scale_color_discrete(name = "types of birds", breaks = c("n","y"), labels = c("no", "yes")) +
scale_size_continuous(name = "impact") +
scale_size(range = c(0,15))
Scale for 'size' is already present. Adding another scale for 'size', which
will replace the existing scale.
Если я переключаю порядок scale_size_continuous()
и scale_size()
звонки, я все еще получаю ошибку.В этом случае я сохраняю форматирование, но теряю масштабирование:
ggplot() +
world +
geom_point(data = points, aes(x = lon, y = lat, col = type, size = impact.x.r)) +
scale_color_discrete(name = "types of birds", breaks = c("n","y"), labels = c("no", "yes")) +
scale_size(range = c(0,15)) +
scale_size_continuous(name = "impact")
Scale for 'size' is already present. Adding another scale for 'size', which
will replace the existing scale.
Так что используется последний вызов scale_size ...
Но как мне изменить легенду для эстетики размера и задать для scale_size то, что соответствует моей карте?