Как создать сюжет для скрипки в ggplot2 (с примерами)
Вы можете использовать следующие методы для создания скрипичного сюжета в ggplot2:
Способ 1: создавать скрипичные сюжеты по группам
ggplot(df, aes(x=group_var, y=values_var, fill=group_var)) +
geom_violin() +
Способ 2. Создайте горизонтальные скрипичные дорожки по группам.
ggplot(df, aes(x=group_var, y=values_var, fill=group_var)) +
geom_violin() +
coordinate_flip()
Метод 3: создать графики скрипки по группам и показать медианное значение
ggplot(df, aes(x=group_var, y=values_var, fill=group_var)) +
geom_violin() +
stat_summary(fun=median, geom=' point ', size= 2 )
В следующих примерах показано, как использовать каждый метод на практике со следующим фреймом данных в R:
#make this example reproducible
set. seeds (1)
#create data frame
df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 100 ),
points=c(rnorm(100, mean=10),
rnorm(100, mean=15),
rnorm(100, mean=20)))
#view head of data frame
head(df)
team points
1 A 9.373546
2 A 10.183643
3 A 9.164371
4 A 11.595281
5 A 10.329508
6 A 9.179532
Примечание . Мы использовали функцию set.seed() , чтобы обеспечить воспроизводимость этого примера.
Пример 1: Создание скрипичных обводок по группам
Мы можем использовать следующий синтаксис для создания графиков скрипки, показывающих распределение переменной Points , сгруппированной по переменной команды :
library (ggplot2)
#create violin plot to visualize distribution of points by team
ggplot(df, aes(x=team, y=points, fill=team)) +
geom_violin()
По оси X отображается каждая команда, а по оси Y отображается распределение очков, набранных каждой командой.
Пример 2: Создание следов скрипки по группе
Чтобы создать горизонтальные графики скрипки, показывающие распределение переменных точек , сгруппированных по переменной команды , просто добавьте функцию coord_flip() :
library (ggplot2)
#create horizontal violin plots to visualize distribution of points by team
ggplot(df, aes(x=team, y=points, fill=team)) +
geom_violin() +
coordinate_flip()
По оси Y отображается каждая команда, а по оси X отображается распределение очков, набранных каждой командой.
Пример 3. Создайте графики скрипки по группам и отобразите медианное значение.
Следующий код демонстрирует, как создать графики скрипки, показывающие распределение переменной очков , сгруппированной по переменной команды , со средним значением очков, представленным кружком:
library (ggplot2)
#create violin plots and display median points value as circle
ggplot(df, aes(x=team, y=points, fill=team)) +
geom_violin() +
stat_summary(fun=median, geom=' point ', size= 2 )
Среднее значение балла для каждой команды представлено маленьким кружком внутри каждого графика.
Примечание . Чтобы увеличить размер круга, просто увеличьте значение аргумента размера в функции stat_summary() .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в ggplot2:
Как изменить размер шрифта в ggplot2
Как удалить легенду в ggplot2
Как повернуть метки осей в ggplot2