В этом руководстве представлено полное руководство по лучшим темам 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")
)