Скрипка с указанием количества наблюдений ggplot - PullRequest
0 голосов
/ 06 ноября 2018

Я создаю скриптовый сюжет, используя ggplot в R. Я хочу создать скрипичный сюжет, показывающий различное количество чисел в каждом сюжете, как это. enter image description here

Я использовал этот код для создания такого графика.

data<-read.csv("Clinical violion file.csv")
mat <- reshape2::melt(data.frame(data), id.vars = NULL)
pp <- ggplot(mat, aes(x = variable, y = value)) + geom_violin(scale="width",adjust = 1,width = 0.5,aes(color=factor(variable)))+ geom_point() 
pp

У меня есть такой сюжет.

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

Я решил эту проблему, выполнив это.

 library(ggbeeswarm)
pp <- ggplot(mat, aes(x = variable, y = value)) + geom_violin(scale="width",adjust = 1,width = 0.5,aes(color=factor(variable)))+geom_quasirandom(aes(color=factor(variable)),groupOnX=FALSE)

1 Ответ

0 голосов
/ 06 ноября 2018

Это должно делать то, что вы хотите:

library(ggplot2)

head(iris)

iris %>%  group_by(Species) %>% summarise(n=n(), avg = mean(Sepal.Length)) ->Summary.data


ggplot(iris,aes(x=Species,y=Sepal.Length)) + geom_violin(trim = T) +
  geom_jitter(height = 0, width = 0.1) +
  geom_text(data=Summary.data ,aes(x = Species, y = avg, label=n),color="red", fontface =2, size = 5)

Результат

...