Создание двухклассного дипломированного круга в ggplot2? - PullRequest
0 голосов
/ 03 марта 2019

Я составил график, на котором я изобразил кружки, чтобы представить количество птиц в локации, но мне бы хотелось иметь отдельный цвет для каждого участка.

Пример данных:

datexample <- data.frame(
    "site" = c("A","B"), 
    "bird" = c("1A","2A"), 
    "season" = c("Fall","Winter"), 
    "lat" =  c(45.25, 44.75, 44.75, 44.75), 
    "lon" = c(-61.75), 
    "Count"=c(1,3,3,3)
)

datexample

Код для участка:

p = ggplot() +
  coord_sf(crs = 4326, xlim = c(-58, -69), ylim = c(40, 48))+
  xlab("Longitude")+
  ylab("Latitude")+
  facet_grid(. ~ season)+
  geom_point(data = datexample, aes(x = lon, y = lat, size=Count), pch=20, color="royalblue4")+
  scale_size_area()

p2 = p + theme(axis.text.x = element_text(angle = 90, hjust = 1))
p2

Вывод: enter image description here

Вместочтобы у меня был один цвет для всех точек, мне нужен цвет для каждого сайта, и чтобы оба они появлялись в легенде.

Я новичок в R, поэтому любая помощь будет признательна!

1 Ответ

0 голосов
/ 03 марта 2019

Вы можете добавить это guides(color = guide_legend("Site", override.aes = list(size = 5))) к своему коду, чтобы изменить размер точек в легенде

library(tidyverse)
theme_set(theme_minimal(base_size = 14))

p = ggplot() +
  coord_sf(crs = 4326, xlim = c(-58, -69), ylim = c(40, 48))+
  xlab("Longitude")+
  ylab("Latitude")+
  facet_grid(. ~ season)+
  geom_point(data = datexample, aes(x = lon, y = lat, 
                                    size = Count,
                                    color = site), pch = 20)+
  scale_size_area()

p2 <- p + 
  theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
  guides(color = guide_legend("Site", override.aes = list(size = 5)))
p2

Создано в 2019-03-02 представителем пакета (v0.2.1.9000)

...