Урок 13 Пакет ggplot2: Применение тем и изменение элементов графика в ggplot2 (ggthemes, ggthemr)
13.1 Описание
В этом видео вы научитесь изменять различные элементы графиков построенных с помощью пакета ggplot2
, а так же применять к ним готовые темы с помощью пакетов ggthemes
и ggthemr
.
Также в видео разобран процесс добавления аннотаций на график.
Шрифты которые можно задавать с помощью аргумент family функции element_text()
: sans, serif, mono.
13.4 Код
#install.packages('devtools')
#devtools::install_github('cttobin/ggthemr')
library(ggplot2)
library(ggthemes)
library(ggthemr)
library(dplyr)
library(readr)
# чтение данных
<- read_tsv('https://raw.githubusercontent.com/selesnow/r4excel_users/master/lesson_13/sales.csv')
data
# график
<-
plot # продажи по месяцам, столбчатая диаграмма
%>%
data mutate(month = format(date, "%Y-%m")) %>%
group_by(month) %>%
summarise(transactions = n_distinct(id)) %>%
ggplot( aes(x = month, y = transactions) ) + # основной слой
geom_col( aes( fill = transactions) ) + # слой столбцатой диаграммы
labs(title = "Количество продаж за 2019 год", # заголовок
subtitle = "по месяцам") + # подзаголовок
xlab("Месяц") + # подпись X
ylab("Количество продаж") # подпись y
# дабавим анотации
+
plot annotate("text", x = '2019-05', y = 110,
label = "Top Sales",
colour = "red",
size = 4,
fontface = "bold")
# применяем готовые темы
+ theme_stata()
plot + theme_excel()
plot + theme_economist()
plot + theme_calc()
plot
# темы из пакета ggthemr
ggthemr('flat dark')
plot
ggthemr('flat')
plot
ggthemr('camoflauge')
plot
ggthemr('solarized')
plot
ggthemr_reset() # сброс темы
# управление элементами дайджеста, слой theme
+
plot theme(
legend.position = 'none', # убираем легенду
title = element_text(colour = 'royalblue4', # заголовок
face = 'bold'),
plot.subtitle = element_text(colour = 'royalblue3', # подзаголовок
face = 'italic', ),
axis.title = element_text(colour = 'gray28', # названия осей
face = 'bold.italic'),
axis.text.y = element_text(face = 'italic', # значения оси y
size = 7),
axis.text.x = element_text(angle = 90, # поворачиваем подпись X
hjust = 1,
vjust = 0.5,
size = 9),
panel.background = element_rect(fill = 'skyblue1'), # фон диаграммы
panel.border = element_rect(colour = 'dodgerblue4', # обводка диаграммы
fill = NA),
panel.grid = element_line(color = "skyblue4", # сетка диаграммы
size = 0.1,
linetype = 'dotted'),
plot.background = element_rect(fill = 'powderblue') # общий фон графика
)
# сохраняем созданную тему
<-
theme_custom_blue theme(
legend.position = 'none', # убираем легенду
title = element_text(colour = 'royalblue4', # заголовок
face = 'bold'),
plot.subtitle = element_text(colour = 'royalblue3', # подзаголовок
face = 'italic', ),
axis.title = element_text(colour = 'gray28', # названия осей
face = 'bold.italic'),
axis.text.y = element_text(face = 'italic', # значения оси y
size = 7),
axis.text.x = element_text(angle = 90, # поворачиваем подпись X
hjust = 1,
vjust = 0.5,
size = 9),
panel.background = element_rect(fill = 'skyblue1'), # фон диаграммы
panel.border = element_rect(colour = 'dodgerblue4', # обводка диаграммы
fill = NA),
panel.grid = element_line(color = "skyblue4", # сетка диаграммы
size = 0.1,
linetype = 'dotted'),
plot.background = element_rect(fill = 'powderblue') # общий фон графика
)
# создаём новый график
<-
plot2 %>%
data mutate(month = format(date, "%Y-%m")) %>%
group_by(month, manager_id) %>%
summarise(sales_sum = sum(summ)) %>%
ggplot( aes(x = month,
y = sales_sum,
group = manager_id,
colour = manager_id) ) +
geom_line( size = 1 ) +
geom_point( size = 1.7 ) +
labs(title = "Продажи за 2019 год", subtitle = "В разрезе менеджеров")
# применяем созданную тему
+ theme_custom_blue plot2