对R-ggridges包认识的修订

浏览: 1568

我之前写过一篇关于R-ggridges包的文章:

R-ggridges包的改进

其中关于R-ggridges包的问题1今天有了新的认识,并做修正奉献给大家。ggridges包有一个很惊艳的函数geom_density_ridges_gradient()可以绘制多数据系列的核密度估计图,如下图所示:

image.png

#代码如下:
library(ggplot2)
library(ggridges)
#theme_set(theme_ridges())
ggplot(lincoln_weather, aes(x = `Mean Temperature [F]`, y = `Month`)) +
geom_density_ridges_gradient(aes(fill = `Month`), scale = 3, size = 0.3) + theme(legend.position = "none")

 在这个函数中,fill的颜色还可以以x轴的数值作为映射,如下图所示:

image.png

#代码如下:
library(ggplot2)
library(ggridges)
#theme_set(theme_ridges())
library(RColorBrewer)
Colormap<- colorRampPalette(rev(brewer.pal(11,'Spectral')))(32)
ggplot(lincoln_weather, aes(x = `Mean Temperature [F]`, y = `Month`)) +
geom_density_ridges_gradient(aes(fill = ..x..), scale = 3, size = 0.3 ) +
scale_fill_gradientn(colours=Colormap,name = "Temp. [F]")

我之前说的ggridges包中, 由于没有Y轴数值,无法得知每个数据系列对应的Y轴数值,也就无法得到核密度估计得具体数值,只能看到数据大概的分布形状;
核密度估计面积的高度对应核密度估计得数值,这就相当于将Y轴的对应数值使用颜色映射实现啦。

有朋友Hazard在知乎上说还是可以通过ggridges包实现的,具体代码如下:

image.png

#代码如下:
library(ggplot2)
library(ggridges)
#theme_set(theme_ridges())
library(RColorBrewer)
ggplot(lincoln_weather,
aes(x = `Mean Temperature [F]`, y = rev(`Month`), fill = ..density..)) +
geom_density_ridges_gradient(scale = 3, rel_min_height = 0.01,size = 0.3) +
scale_fill_gradientn(colours = colorRampPalette(rev(brewer.pal(11,'Spectral')))(32))

但是对于不是核密度估计的图表,ggridges包还是没有办法实现。下面就是使用山峰叠峦图

image.png

image.png

image.png

推荐 0
本文由 EasyCharts 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册