Как создать сюжет для скрипки в 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() 

Горизонтальные графики скрипки в ggplot2

По оси 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 ) 

график скрипки в ggplot2

Среднее значение балла для каждой команды представлено маленьким кружком внутри каждого графика.

Примечание . Чтобы увеличить размер круга, просто увеличьте значение аргумента размера в функции stat_summary() .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в ggplot2:

Как изменить размер шрифта в ggplot2
Как удалить легенду в ggplot2
Как повернуть метки осей в ggplot2

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *