R: Практическое руководство. 3D-график плотности с gplot и geom_density
Я пытаюсь объединить несколько графиков плотности с наложением.
ggplot и geom_density выполняют эту работу, но плотности укладываются друг на друга. ![This is overlaid but not 3d]()
ggplot(all.complete, aes(x=humid_temp)) +
geom_density(aes(group=height, colour=height, fill=height.f, alpha=0.1)) +
guides(fill = guide_legend(override.aes = list(colour = NULL))) +
labs(main="Temperature by Height", x="Temperature", y="Density")
Нечто похожее на то, чего я пытаюсь достичь:
![Density? with 3d overlay]()
В моем случае годы будут заменены высотой.
Спасибо!!!
Ответы
Ответ 1
Я знаю это старое, но другие люди с такой проблемой могут наткнуться на этот пост, поэтому я подумал, что добавлю недавно обнаруженное решение. Существует новый пакет, который был создан для того, чтобы делать именно этот тип визуализации и называется ggjoy
и предназначен для работы с системой ggplot2.
Вся информация находится здесь: https://github.com/clauswilke/ggjoy
Надеюсь, это поможет!
Ответ 2
Как упоминал @jlhoward, использование фасетов может работать или использовать подзаголовки, но любой из них не очень хорошо масштабируется с большим количеством групп. Вместо этого рассмотрите использование графика ecdf.
Без данных в вашем объекте all.complete я не могу воссоздать ваш сюжет, поэтому здесь приведен упрощенный пример:
library(ggplot2)
ggplot(iris, aes(x = Sepal.Length)) +
geom_density(aes(group = Species,
colour = Species,
fill = Species),
alpha = 0.2)
![плотность]()
Для более чем пары групп я нашел, что графики ecdf намного проще интерпретировать. Чтобы сделать аналогичный сюжет:
ggplot(iris, aes(x = Sepal.Length)) +
stat_ecdf(aes(color = Species))
![ecdf plot]()
У вас могут быть десятки участков ecdf на одном и том же участке, и поскольку они - только линии, они все еще достаточно раздельны для просмотра. Графики плотности или гистограммы будут слишком перекрыты, как в вашем примере.
Это сообщение в блоге, в результате которого я начал использовать графики ecdf и получил больше информации о них: http://allendowney.blogspot.com/2013/08/are-my-data-normal.html