Объединение geom_vridgeline с geom_line на одном участке - PullRequest
0 голосов
/ 08 октября 2019

Я хотел бы объединить geom_vridgeline с (подключенной) линейной диаграммой.

Значения geom_line (и geom_point) взяты из другого набора данных. Т.е. это не момент (среднее значение, медиана и т. Д.) Наблюдений, используемых в geom_vridgeline.

Я попробовал простую вещь: geom_vridgeline (...) + geom_line (data ...) + geom_point (. .), а также несколько настроек (добавление второй оси X и т. д.).

library(tidyverse)
library(ggridges)

#The original chart
ggplot(iris, aes(x=Species, y=Sepal.Width, width = ..density..,     fill=Species)) +
geom_vridgeline(stat="ydensity", trim=FALSE, alpha = 0.85, scale = 0.25)

# another dataset
df<-iris%>%
group_by(Species)%>%
summarise(newvar=mean(Sepal.Width))

# add line from new dataset (doesn't work)
ggplot(iris, aes(x=Species, y=Sepal.Width, width = ..density..,     fill=Species)) +
geom_vridgeline(stat="ydensity", trim=FALSE, alpha = 0.85, scale = 0.25)+
geom_line(data=df,aes(x=factor(Species),y=newvar))

Примерно так

enter image description here

https://www.dropbox.com/s/1v7ycl23014hau8/Rplot.png?dl=1

ПРИМЕЧАНИЕ: в моем реальном примере хось на самом деле непрерывная. Я предполагаю, что, как только я понял, как добавить geom_line, я также могу добавить geom_point

Большое спасибо!

1 Ответ

0 голосов
/ 08 октября 2019
 ggplot() + 
    geom_line(data=df,mapping=aes(x=Species,y=newvar,group = 1)) +
    geom_vridgeline(data=iris, aes(x=Species, y=Sepal.Width, width = ..density..,     fill=Species),stat="ydensity", trim=FALSE, alpha = 0.85, scale = 0.25)
...