O introducere în scrierea propriilor dvs. geoms ggplot2

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

(Acest articol a fost publicat pentru prima dată pe R Funcționeazăș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.


Dacă utilizați ggplot2, probabil că sunteți obișnuit să creați diagrame cu geom_line() şi geom_point(). Este posibil să vă fi aventurat și în ecosistemul mai larg ggplot2 pentru a utiliza geoms ca geom_density_ridges() din ggridges sau geom_signif() din ggsignif. Dar te-ai întrebat vreodată Cum aceste extensii au fost create? Unde și-au dat seama autorii cum să creeze un nou geom? Și, dacă complotul visurilor tale nu există, cum ți-ai crea al tău?

Intră în lumea captivantă a creării propriilor extensii ggplot2.

Am avut plăcerea să o cunosc pe Gina Reynolds când mi-am început munca la Posit (apoi RStudio) și ea contribuia cu o postare pe blog pe flipbookr. De atunci, am ținut legătura prin clubul de extensie ggextenders. La fiecare câteva luni, clubul se întâlnește virtual pentru a auzi de la un ggextender (cineva care lucrează cu extensii ggplot2). Vorbitorul poate vorbi despre un geom personalizat pe care l-au creat pentru comunitate sau despre subiecte mai generale de vizualizare R. Fiecare prezentare este perspicace și interesantă. Am avut ocazia să învăț despre pachete interesante precum ggstats. Alăturați-vă nouă cândva completând acest chestionar!

Cu toate acestea, eu nu am fost niciodată un „ggextender” (doar am folosit și nu am dezvoltat niciodată extensii). Mi s-a părut descurajantă ideea de a crea o extensie. Adică până de curând!

Gina a organizat un focus grup care a lucrat prin rețetele Easy geom, o serie de tutoriale despre crearea extensiilor ggplot2. Urmând „rețete”, creați metodic trei extensii. De fiecare dată, anumite puncte cheie de cunoștințe sunt consolidate și sunt introduse noi variații.

Deci, să spunem că vrem să creăm un nou geom_*() care adaugă un punct pe mediana variabilelor pe axa x și pe axa y ale unui grafic. O vom numi geom_medians(). Hai sa urmam reteta:

Și atunci ai terminat! Ați creat prima extensie ggplot 🥳.

Parcurgerea rețetelor este o modalitate excelentă de a vă ușura călătoria cu extensia ggplot2. Ele oferă trei exemple bine lucrate, cu o structură clară și o secvență de pași. Codul standard pare descurajant, dar îl puteți copia/lipi și edita în funcție de ceea ce creați; dacă doriți să intrați în mai multe detalii cu privire la ceea ce face de fapt, tutorialele oferă resurse suplimentare. O notă distractivă este că site-ul de rețete geom folosește webR și Quarto Live pentru a încorpora fragmente de cod interactive direct în tutorial. Oferă o experiență captivantă în timp ce parcurgeți exercițiile.

Vrei să-ți încerci propria mână la creare geom_means()? Parcurgeți tutorialul interactiv din Easy geom Recipes!

Resurse

Este o încântare să treci prin resursele Ginei, de la a vedea adorabilii ggextenders hex până la citirea tuturor notelor emoționante despre ggplot2, comparându-l cu artă, mâncare, poezie și multe altele. Este o dovadă a modului în care un instrument poate inspira atât de mulți. Iată câteva dintre citatele și metaforele mele preferate:

  • „ggplot2 le permite utilizatorilor să-și spună comploturile în existență” – Thomas Lin Pedersen
  • „Ești un compozitor de „poezii grafice”” – Hadley Wickham

Aflați mai multe despre munca Ginei aici:

Există o listă cuprinzătoare de resurse pe site-ul web al clubului ggplot2 extenders.

Mulțumiri lui Andrew Bray, James Goldie și QMD Lab pentru Closeread, o extensie Quarto pentru scrollytelling, care a parcurs treptele ggextender, și Ginei, atât pentru organizarea clubului de extensii ggplot2, cât și pentru revizuirea acestei postări!

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.