Vendée Globe 2024

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

(Acest articol a fost publicat pentru prima dată pe Jonathan Kittși cu amabilitate a contribuit la R-bloggeri). (Puteți raporta problema legată de conținutul acestei pagini aici)


Doriți să vă distribuiți conținutul pe R-bloggeri? dați clic aici dacă aveți un blog, sau aici dacă nu aveți.

Introducere

Vendée Globe 2024 este pe drumuri!

Am vrut să văd dacă pot încerca o hartă a căpitanilor cu R.

Urmați acest tutorial dacă doriți să îl încercați singur!

Obținerea datelor

Clasamentul și coordonatele skipperului (printre alte date) sunt actualizate la fiecare patru ore pe site-ul cursei.

Puteți descărca seturile de date de aici.

Am curățat diferitele seturi de date și am creat un set de date „global”, care poate fi descărcat aici.

Începem scriptul prin încărcarea pachetelor pe care le vom folosi:

  • {tidyverse} pentru a curăța datele și a crea parcele

  • {readxl} pentru a importa foile Excel care conțin datele

  • {showtext} pentru a schimba fonturile utilizate

  • {parzer} pentru a converti coordonatele

Dacă nu aveți aceste pachete instalate, utilizați pur și simplu install.packages() funcţie.

library(tidyverse)
library(readxl)
library(showtext)
library(parzer)

Încărcăm și fonturile pe care le vom folosi în ploturi: Roboto Condensed.

# Import the fonts
font_add_google("Roboto Condensed", "Roboto Condensed")
showtext_auto()

Acum putem importa setul de date curat:

# Download the dataset
df <- readr::read_csv("clean_data.csv")

Pentru o prezentare rapidă a datelor, folosim glimpse() funcția din pachetul {dplyr}:

# Explore the dataset
glimpse(df)
Rows: 2,160
Columns: 24
$ Date                        <dbl> 20241110, 20241110, 20241110, 20241110, 20…
$ Time                        <chr> "130400", "130400", "130400", "130400", "1…
$ Rank                        <chr> "1", "2", "3", "4", "5", "6", "7", "8", "9…
$ Nat                         <chr> "FRA", "GBR", "FRA", "FRA", "FRA", "FRA", …
$ Sail                        <chr> "FRA 2030", "FRA 100", "FRA 172", "FRA 56"…
$ Surname                     <chr> "Meilhat", "Goodchild", "Duc", "Amedeo", "…
$ Name                        <chr> "Paul", "Sam", "Louis", "Fabrice", "Maxime…
$ Hour_FR                     <chr> "14:02 FRrn", "14:02 FRrn", "14:02 FR…
$ Latitude                    <chr> "46°25.94'N", "46°26.02'N", "46°26.01'N", …
$ Longitude                   <chr> "01°50.17'W", "01°50.14'W", "01°50.01'W", …
$ Last30min_heading           <chr> "297°", "270°", "291°", "277°", "240°", "2…
$ Last30min_speed             <chr> "0.9 kts", "0.8 kts", "0.6 kts", "0.6 kts"…
$ Last30min_VMG               <chr> "0.5 kts", "0.7 kts", "0.4 kts", "0.5 kts"…
$ Last30min_distance          <chr> "0.0 nm", "0.0 nm", "0.0 nm", "0.0 nm", "0…
$ SinceLastStandings_heading  <chr> "297°", "270°", "291°", "280°", "240°", "2…
$ SinceLastStandings_speed    <chr> "0.9 kts", "0.8 kts", "0.6 kts", "0.7 kts"…
$ SinceLastStandings_VMG      <chr> "0.5 kts", "0.7 kts", "0.4 kts", "0.5 kts"…
$ SinceLastStandings_distance <chr> "0.0 nm", "0.0 nm", "0.0 nm", "0.1 nm", "0…
$ Last24hrs_heading           <chr> "205°", "205°", "204°", "204°", "204°", "2…
$ Last24hrs_speed             <chr> "0.2 kts", "0.2 kts", "0.2 kts", "0.2 kts"…
$ Last24hrs_VMG               <chr> "0.2 kts", "0.2 kts", "0.2 kts", "0.1 kts"…
$ Last24hrs_distance          <chr> "4.6 nm", "4.6 nm", "4.5 nm", "4.5 nm", "4…
$ Distance_to_finish          <chr> "24272.3 nm", "24272.4 nm", "24272.5 nm", …
$ Distance_to_leader          <chr> "0.0 nm", "0.1 nm", "0.1 nm", "0.2 nm", "0…

Curățarea datelor

Folosim următorul cod pentru a analiza coordonatele:

df <- df |> 
  mutate(lon = parzer::parse_lon(Longitude),
         lat = parzer::parse_lat(Latitude))

Crearea hărții

Harta lumii

Mai întâi obținem datele pentru harta lumii:

world <- map_data("world")

Căpitanii

Apoi creăm o hartă simplă cu cele mai recente clasamente:

ggplot() +
  geom_polygon(data = world, aes(x = long, y = lat, group = group),
               fill = "#afcfdf") +
  geom_point(data = filter(df, Date == 20241120, Time == "060000"),
             aes(x = lon, y = lat),
             col = "white", size = 0.8) +
  coord_fixed(ratio = 1.3, xlim = c(-35, 0), ylim = c(5, 30)) +
  labs(title = "Vendée Globe 2024",
       subtitle = "2024-11-20 6:00") +
  theme_void() +
  theme(panel.background = element_rect(colour = "#485fb0",
                                        fill = "#485fb0"),
        plot.background = element_rect(colour = "#485fb0",
                                        fill = "#485fb0"),
        # plot.margin = margin(t = -50, r = -150),
        plot.title = element_text(colour = "white",
                                  family = "Roboto Condensed",
                                  size = 20, hjust = 0.5),
        plot.subtitle = element_text(colour = "white",
                                     family = "Roboto Condensed",
                                     size = 15, hjust = 0.5))

Salvați harta

Salvăm acum harta:

ggsave("20241120_060000.png", p, dpi = 320, width = 6, height = 6)

Și iată rezultatul:

La lasa un comentariu pentru autor, vă rugăm să urmați linkul și să comentați pe blogul lor: Jonathan Kitt.

Noobz.ro.com oferă actualizări zilnice prin e-mail despre R știri și tutoriale despre învățarea R și multe alte subiecte. Faceți clic aici dacă doriți să publicați sau să găsiți un job R/data-science.


Doriți să vă distribuiți conținutul pe R-bloggeri? dați clic aici dacă aveți un blog, sau aici dacă nu aveți.

Continuați să citiți: Vendée Globe 2024

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.