我的代码与以下示例非常相似。我有类别(内部存储为因子),并且需要绘制多个图形。 当我绘制它们时,y轴的高度不在图中所示的高度上。有解决方案吗?
library(ggplot2)
library('grid')
a=ggplot(iris, aes(x = Sepal.Length, y = Species)) + geom_density_ridges()
b=ggplot(iris, aes(x = Sepal.Width, y = Species)) + geom_density_ridges()
test=cbind(ggplotGrob(a), ggplotGrob(b),size="last")
grid.draw(test)
答案 0 :(得分:2)
height
参数有一个..ndensity ..选项
library(devtools)
install_github("clauswilke/ggridges")
a <- ggplot(iris, aes(x = Sepal.Length, y = Species, height = ..ndensity..)) + geom_density_ridges()
b <- ggplot(iris, aes(x = Sepal.Width, y = Species, height = ..ndensity..)) + geom_density_ridges()
test <- cbind(ggplotGrob(a), ggplotGrob(b),size="last")
grid.draw(test)
答案 1 :(得分:1)
一种可能的解决方案是先reshape the data from wide to long,在这种情况下使用软件包reshape2
,然后使用ggplot2
的构面。
library(ggplot2)
library(ggridges)
long_iris <- reshape2::melt(iris[c(1, 2, 5)], id.vars = "Species")
g <- ggplot(long_iris) +
geom_density_ridges(aes(x = value, y = Species)) +
theme_ridges() +
facet_wrap(~ variable)
g