(Acest articol a fost publicat pentru prima dată pe Ozancan Ozdemirși a contribuit cu drag la R-Bloggers). (Puteți raporta problema despre conținutul de pe această pagină aici)
Doriți să vă împărtășiți conținutul pe R-Bloggers? Faceți clic aici dacă aveți un blog sau aici dacă nu.
Bună, oameni buni!
În acest tutorial, voi ilustra cum să desenez un complot Financial Times cu GGPLOT2 în R pas cu pas. Știm că pachetul GGThemes include o temă legată de timpurile financiare, dar tema este depreciată acum.
Graficul meu de referință pentru acest tutorial este prezentat mai jos.
Pentru a desena un complot având un model similar cu unul de mai sus, voi folosi doar pachete GGPLOT2 și GGPUBR. Textele sunt de la Windows Family. Nu import fonturi suplimentare.
Să începem.
Voi atrage o rată de inflație a Turciei. Puteți accesa datele de aici.
Să citim datele la început.
inflation<-readxl::read_xlsx("inflation_rate.xlsx") head(inflation) # A tibble: 6 x 2 Date Rate1 2005-01-01 00:00:00 9.24 2 2005-02-01 00:00:00 8.69 3 2005-03-01 00:00:00 7.94 4 2005-04-01 00:00:00 8.18 5 2005-05-01 00:00:00 8.7 6 2005-06-01 00:00:00 8.95
Apoi, desenați o linie de linie folosind geom_line
Funcție geometrică.
library(ggplot2) ggplot(inflation,aes(x = Date, y = Rate))+ geom_line()
Acum, vom începe să manipulăm aspectul complotului adăugând titlu și legendă.
ggplot(inflation,aes(x = Date, y = Rate))+ geom_line()+ labs(title = "- The Inflation rate in Turkey is at the peak of the last 17 years !", subtitle = "Starting from January 05.", caption = "FINANCIAL TIMES")
Apoi, schimbați culoarea fundalului, schimbați culoarea și bifarea liniei și îndepărtați liniile de grilă verticală. Vom folosi funcția tematică în GGPLOT2 și col
şi size
argumente în geom_line
funcţie.
ggplot(inflation,aes(x = Date, y = Rate))+ geom_line(col = "#f20656", size = 1.2)+ labs(title = "- The Inflation rate in Turkey is at the peak of the last 17 years !", subtitle = "Starting from January 05.", caption = "FINANCIAL TIMES")+ theme(rect = element_rect(fill = "#262a33"), panel.background = element_rect(fill = "#262a33"), panel.grid.minor.x = element_blank(), panel.grid.major.x = element_blank(), panel.grid = element_line(color = "#92959e"), axis.title = element_blank())
După aceea, vom manipula textele de pe complot. Cu alte cuvinte, vom schimba culoarea și familia textelor. Vom adăuga argumentele necesare în theme
funcţie.
ggplot(inflation,aes(x = Date, y = Rate))+ geom_line(col = "#f20656", size = 1.2)+ labs(title = "- The Inflation rate in Turkey is at the peak of the last 17 years !", subtitle = "Starting from January 05.", caption = "FINANCIAL TIMES")+ theme(rect = element_rect(fill = "#262a33"), panel.background = element_rect(fill = "#262a33"), panel.grid.minor.x = element_blank(), panel.grid.major.x = element_blank(), panel.grid = element_line(color = "#92959e"), axis.title = element_blank(), plot.title = element_text(family ="Tw Cen MT", color = "white",size = 18), plot.subtitle = element_text(family ="Tw Cen MT", color = "#92959e"), plot.caption = element_text(family = "Times New Roman",face = "bold",color ="#92959e"), axis.text = element_text(size = 10, color ="#92959e", family = "Tw Cen MT"))
În continuare, vom pune valorile axei y în dreapta graficului. De asemenea, vom lipi semnul % lângă valori folosind scale_y_continuous
funcţie.
În cele din urmă, vom adăuga a doua legendă în colțul din stânga jos al parcelei, care poate fi cea mai grea parte a acestui proces. În acest scop, vom folosi funcția ANOTATE_CUSTOM. Știm că intrarea acestei funcții este obiectul GROB. Astfel, vom lua în considerare ggpubr
Pachet pentru a produce un obiect text GROB. Apoi, vom clipi folosind coord_cartesian
.
caption2<-ggpubr::text_grob("Source: CBRT", family = "Tw Cen MT",face = "bold", color = "#92959e", size =10) ggplot(inflation,aes(x = Date, y = Rate))+ geom_line(col = "#f20656", size = 1.2)+ labs(title = "- The Inflation rate in Turkey is at the peak of the last 17 years !", subtitle = "Starting from January 05.", caption = "FINANCIAL TIMES")+ theme(rect = element_rect(fill = "#262a33"), panel.background = element_rect(fill = "#262a33"), panel.grid.minor.x = element_blank(), panel.grid.major.x = element_blank(), panel.grid = element_line(color = "#92959e"), axis.title = element_blank(), plot.title = element_text(family ="Tw Cen MT", color = "white",size = 18), plot.subtitle = element_text(family ="Tw Cen MT", color = "#92959e"), plot.caption = element_text(family = "Times New Roman",face = "bold",color ="#92959e"), axis.text = element_text(size = 10, color ="#92959e", family = "Tw Cen MT"))+ scale_y_continuous(labels = function(x) paste0(x, "%"),position = "right")+ annotation_custom(caption2,xmin=inflation$Date(10),xmax=inflation$Date(10),ymin=-6,ymax=-6)+ coord_cartesian(clip = "off")
Asta este! Dacă doriți să utilizați această temă ca obiect GGPLOT, mă puteți contacta prin e-mail.