Полное руководство по лучшим темам ggplot2


В этом руководстве представлено полное руководство по лучшим темам ggplot2, в том числе:

  • Как изменить внешний вид графиков с помощью встроенных тем ggplot2.
  • Как изменить внешний вид графиков с помощью предопределенных тем из библиотеки ggthemes .
  • Как изменить определенные компоненты темы, включая фон панели графика и линии сетки.

Как изменить внешний вид графика с помощью встроенных тем ggplot2

Для каждого из следующих примеров мы будем использовать встроенный набор данных R iris:

#view first six rows of *iris* dataset
head(iris)

 Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa

Во-первых, мы загрузим библиотеку ggplot2 и создадим диаграмму рассеяния , которая показывает Sepal.Length по оси X и Sepal.Width по оси Y, окрашенные в соответствии с видами:

#load *ggplot2* library
library(ggplot2)

#create scatterplot
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
 geom_point() 
диаграмма рассеяния ggplot2

Далее мы покажем, как каждая из встроенных тем ggplot2 влияет на внешний вид графика.

тема_серый

Тема по умолчанию с серым фоном и белыми линиями сетки.

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
 geom_point() +
 theme_gray() 
диаграмма рассеяния ggplot2

тема_бв

Черно-белая тема.

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
 geom_point() +
 theme_bw() 
Диаграмма рассеяния Ggplot2 с theme_bw

тема_linedraw

Тема только с черными линиями разной ширины на белом фоне.

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
 geom_point() +
 theme_linedraw() 

Диаграмма рассеяния Ggplot2 с ggthemes

тема_свет

Тема, похожая на theme_linedraw, но с серыми линиями и осями, предназначенными для привлечения большего внимания к данным.

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
 geom_point() +
 theme_light() 

Пример темы Ggplot2

тема_темная

Тема, похожая на theme_light , но с темным фоном. Полезная тема для выделения тонких цветных линий.

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
 geom_point() +
 theme_dark() 

ggplot2 с темной темой

тема_минимальный

Тема без фоновых аннотаций.

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
 geom_point() +
 theme_minimal() 

тема ggplot2 с theme_minimal

тема_классика

Тема без линий сетки.

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
 geom_point() +
 theme_classic() 

Классическая тема в ggplot2

тема_пусто

Совершенно пустая тема.

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
 geom_point() +
 theme_void() 

Пустая тема в ggplot2

Как изменить внешний вид графиков с помощью предопределенных тем из библиотеки ggthemes

Помимо использования встроенных тем ggplot2, мы можем использовать предопределенные темы из библиотеки ggthemes для изменения внешнего вида графиков.

Сначала мы загрузим библиотеку ggthemes:

library(ggthemes)

Далее мы покажем несколько примеров того, как использовать предопределенные темы для изменения внешнего вида графиков:

тема_wsj

Тема из Wall Street Journal.

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
 geom_point() +
 theme_wsj() 
Тема ggplot2 Wall Street Journal

theme_tufte

Минималистская тема, вдохновленная работами статистика Эдварда Тафте.

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
 geom_point() +
 theme_tufte() 

Тема Ggplot, вдохновленная Эдвардом Тафте

theme_solarized

Тема, использующая цвета на основе солнечной палитры .

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
 geom_point() +
 theme_solarized() 
Соляризованная тема на ggplot2

Обратите внимание, что мы также можем использовать аргумент light = FALSE , чтобы использовать темный фон на графике:

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
 geom_point() +
 theme_solarized( light = FALSE ) 

Пример Ggplot2

тема_gdocs

Тема со стандартными настройками Google Docs Chart.

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
 geom_point() +
 theme_gdocs() 

Ggplot2 с темой документа Google

theme_fivethirtyeight

Тема, вдохновленная сюжетами FivethirtyEight.com .

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
 geom_point() +
 theme_fivethirtyeight() 

Тема Ggplot2, вдохновленная Five Thirty Eight

тема_экономист

Тема вдохновлена The Economist.

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
 geom_point() +
 theme_economist() 

Тема ggplot2, вдохновленная The Economist

Как изменить определенные компоненты графиков

Мы можем использовать функции theme() и element_rect() для изменения цвета фона панели графика:

theme(panel.background = element_rect(fill, color, size))
  • fill: цвет заливки прямоугольника
  • цвет: цвет границы
  • размер: размер границы

Мы также можем использовать функцию element_line() для изменения размера и внешнего вида линий сетки:

theme(panel.grid.major = element_line(color, size, linetype),
 panel.grid.minor = element_line(color, size, linetype))
  • цвет: цвет границы
  • размер: размер границы
  • linetype: тип линии («пустая», «сплошная», «пунктирная», «пунктирная», «точка-тире», «длинное тире», «двойное тире»)

В следующем коде показано, как удалить границы панели графика и линии сетки:

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
 geom_point() +
 theme(panel.border = element_blank(),
 panel.grid.major = element_blank(),
 panel.grid.minor = element_blank()) 
пример ggplot без линий сетки

В следующем коде показано, как изменить фон панели графика и линии сетки:

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
 geom_point() +
 theme(
 panel.background = element_rect(fill = "powderblue",
 color = "powderblue",
 size = 0.5, linetype = "solid"),
 panel.grid.major = element_line(size = 0.5, linetype = 'solid', color = "white"),
 panel.grid.minor = element_line(size = 0.25, linetype = 'solid', color = "white")
 ) 
Пример точечной диаграммы Ggplot2
Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.