Круглая форма без рамки в ggplot - PullRequest
0 голосов
/ 11 сентября 2018

Как прямое продолжение моего предыдущего вопроса (любезно ответил @PoGibas), я настраиваю внешний вид моего сюжета.Я хотел бы использовать формы круга без границ, но у меня возникают проблемы при интеграции этого в мой существующий код.Пока это код:

set.seed(42)  
lat1 <- rnorm(10, 54, 12)
long1 <- rnorm(10, 44, 12)
val1 <- rnorm(10, 10, 3)
lat2 <- rnorm(10, 54, 12)
long2 <- rnorm(10, 44, 12)
val2 <- rnorm(10, 10, 3)

df1 <- as.data.frame(cbind(long1, lat1, val1))
df2 <- as.data.frame(cbind(long2, lat2, val2))

ggplot() +
geom_point(data = df1, 
           aes(lat1, long1, size = val1, fill = val1), 
           shape = 21, alpha = 0.6) +
geom_point(data = df2, 
           aes(lat2, long2, color = "val2"), 
           shape = 17, size = 3) +
geom_point(data = df2, 
           aes(lat2, long2, color = "val2"), 
           shape = 17, size = 11.5, alpha = 0) +
scale_size_continuous(range = c(2, 12), breaks = pretty_breaks(4)) +
scale_fill_distiller(direction = -1, palette = "RdYlBu", breaks = pretty_breaks(4)) +     
scale_color_manual(values = "black", name = "Value\n") +
labs(fill = NULL,
     size = NULL) +
guides(fill = guide_legend(), 
       size = guide_legend(),
       color = guide_legend(order = 1)) +
theme_minimal() +
theme(legend.spacing.y = unit(-0.4, "cm"))

Я попытался установить stroke=FALSE и альтернативно использовать shape=20 при замене fill=val1 на color=val1, чтобы включить различные цвета.Первое изменение не имеет никакого эффекта, а второе дает мне Error: Discrete value supplied to continuous scale.Что я делаю не так?

1 Ответ

0 голосов
/ 11 сентября 2018

Вы можете добавить colour = "transparent":

ggplot() +
  geom_point(data = df1, 
             aes(lat1, long1, size = val1, fill = val1), 
             shape = 21, alpha = 0.6, colour = "transparent") +
  geom_point(data = df2, 
             aes(lat2, long2, color = "val2"), 
             shape = 17, size = 3) +
  geom_point(data = df2, 
             aes(lat2, long2, color = "val2"), 
             shape = 17, size = 11.5, alpha = 0) +
  scale_size_continuous(range = c(2, 12), breaks = pretty_breaks(4)) +
  scale_fill_distiller(direction = -1, palette = "RdYlBu", breaks = pretty_breaks(4)) +     
  scale_color_manual(values = "black", name = "Value\n") +
  labs(fill = NULL,
       size = NULL) +
  guides(fill = guide_legend(), 
         size = guide_legend(),
         color = guide_legend(order = 1)) +
  theme_minimal() +
  theme(legend.spacing.y = unit(-0.4, "cm"))

enter image description here

Или назначить цвет треугольников вне aes и использовать scale_colour_distillerвместе с shape = 19 (хотя это избавляет от ключа val2 в легенде, не знаю, как это исправить):

ggplot() +
  geom_point(data = df1, 
             aes(lat1, long1, size = val1, colour = val1), 
             shape = 19, alpha = 0.6) +
  geom_point(data = df2, 
             aes(lat2, long2), 
             shape = 17, size = 3, colour = "black") +
  geom_point(data = df2, 
             aes(lat2, long2), 
             shape = 17, size = 11.5, alpha = 0, colour = "black") +
  scale_size_continuous(range = c(2, 12), breaks = pretty_breaks(4)) +
  scale_colour_distiller(direction = -1, palette = "RdYlBu", breaks = pretty_breaks(4)) +     
  labs(colour = NULL,
       size = NULL) +
  guides(colour = guide_legend(), 
         size = guide_legend(),
         color = guide_legend(order = 1)) +
  theme_minimal() +
  theme(legend.spacing.y = unit(-0.4, "cm"))

enter image description here

...