Полное руководство по лучшим темам 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 влияет на внешний вид графика.

тема_серый

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

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

тема_бв

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

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
 geom_point() +
 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() 

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() 

Обратите внимание, что мы также можем использовать аргумент 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(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")
 )