首页 > 解决方案 > 如何使用ggplot按geom_point显示比例?

问题描述

最近我正在使用 R 绘制一些地图,我使用来自nycflights13::flights和的数据nycflights13::airports

我试图先找出目的地的平均延误

library(tidyverse)
library(nycflights13)
library(maps)
library(ggmap)

delay1 <- flights %>% 
  group_by(dest) %>% 
  summarise(delay = dep_delay %>% mean(na.rm = TRUE))  

然后,我加入了 dest 到 aiports 的平均延迟

airports2 <- delay1 %>% left_join(airports, c("dest" = "faa"))

之后,我试图指出美国地图中 dest 的平均延迟

airports2 %>%
  ggplot(aes(lon, lat, col="delay")) +
  borders("state") +
  geom_point() +
  coord_quickmap()

地图

然而,结果证明只有1种颜色有延迟。但假设地图中显示了一定范围的延迟。我该怎么做??非常感谢你

标签: rggplot2

解决方案


您还可以使用fill选项和shape=21来创建色阶,然后使用scale_fill_gradient2(). @markus的好建议也是有效的。这里为您提供另一个选择:

#Code
airports2 %>%
  ggplot(aes(lon, lat, fill=delay)) +
  borders("state") +
  geom_point(shape=21) +
  coord_quickmap()+
  scale_fill_gradient2(low = 'red',mid = 'purple',high = 'blue')

输出:

在此处输入图像描述


推荐阅读