library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.0     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(nycflights13)

View the flights dataset

flights
## # A tibble: 336,776 × 19
##     year month   day dep_time sched_dep_time dep_delay arr_time sched_arr_time
##    <int> <int> <int>    <int>          <int>     <dbl>    <int>          <int>
##  1  2013     1     1      517            515         2      830            819
##  2  2013     1     1      533            529         4      850            830
##  3  2013     1     1      542            540         2      923            850
##  4  2013     1     1      544            545        -1     1004           1022
##  5  2013     1     1      554            600        -6      812            837
##  6  2013     1     1      554            558        -4      740            728
##  7  2013     1     1      555            600        -5      913            854
##  8  2013     1     1      557            600        -3      709            723
##  9  2013     1     1      557            600        -3      838            846
## 10  2013     1     1      558            600        -2      753            745
## # ℹ 336,766 more rows
## # ℹ 11 more variables: arr_delay <dbl>, carrier <chr>, flight <int>,
## #   tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
## #   hour <dbl>, minute <dbl>, time_hour <dttm>

Filter the dataset to include only flights departing from JFK

jfk_flights <- flights %>%
  filter(origin == "JFK")

Create a scatterplot

ggplot(jfk_flights, aes(x = dep_delay, y = arr_delay, color = carrier)) +
  geom_point() +
  labs(title = "Departure Delay vs. Arrival Delay for JFK Flights",
       x = "Departure Delay (minutes)",
       y = "Arrival Delay (minutes)",
       caption = "Source: nycflights13 package") +
  theme_minimal() +
  theme(legend.position = "bottom")
## Warning: Removed 2200 rows containing missing values or values outside the scale range
## (`geom_point()`).

This scatterplot visualizes the relationship between departure delay and arrival delay for flights departing from JFK airport. Each point represents a flight, colored by the carrier. The x-axis represents departure delay in minutes, and the y-axis represents arrival delay in minutes. The plot helps to identify patterns and correlations between these two variables.

One aspect worth highlighting is the variation in delays across different carriers. By coloring the points by carrier, we can see how different airlines perform in terms of managing delays. This insight could be valuable for travelers and airline companies in understanding the performance of different carriers.