绘制混合密度函数图以及添加分位数线

简介: 这里我主要使用 ggridges 包中的 stat_density_ridges()。这个包的介绍,小编以前做过一期内容,可见:ggridges包—峰峦图详细介绍。读者需要进一步阅读课件这篇博文[1],以及一些案例[2]。

简介


最近有个需求,统计课中需要绘制以下图形:

ANU%KEJ8UUBHMLM}K8JKJ~5.png

这里我主要使用 ggridges 包中的 stat_density_ridges()。这个包的介绍,小编以前做过一期内容,可见:ggridges包—峰峦图详细介绍。读者需要进一步阅读课件这篇博文[1],以及一些案例[2]


加载包

library(ggplot2)
library(ggridges)


产生数据集

假设数据来源于一个混合分布。

item <- 10000
inds <- rbinom(1, item, 0.5)
x <- c(rnorm(inds, 1, 1), rnorm(item - inds, 8, 1))
data <- data.frame("value" = x, "class" = rep(1, length(x)))


绘制密度函数图并添加分位数线

# 绘图
p1 <- ggplot(data, aes(x = value, y = class, fill = factor(stat(quantile)))) +
  stat_density_ridges(
    geom = "density_ridges_gradient",
    calc_ecdf = TRUE,
    quantiles = c(0.025, 0.975) #添加分为数线
  ) +
  scale_fill_manual(
    name = "Probability", values = c("#E2EAF6", "#436FB0", "#E2EAF6")
  ) +
  theme_bw() +
  theme(legend.position = "none", panel.grid = element_blank()) +
  labs(x = "x", y = "Density")
p1

]`G@_)3DAGGLR1C_%JQLEO6.png

p2 <- ggplot(data, aes(x = value, y = class, fill = factor(stat(quantile)))) +
  stat_density_ridges(
    geom = "density_ridges_gradient",
    calc_ecdf = TRUE,
    quantiles = c(0.005, 0.495, 0.51, 0.99)
  ) +
  scale_fill_manual(
    name = "Probability", values = c("#E2EAF6", "#436FB0", "#E2EAF6", "#436FB0", "#E2EAF6"),
  ) +
  theme_bw() +
  theme(legend.position = "none", panel.grid = element_blank()) +
  labs(x = "x", y = "Density")
p2

E4{4)RQ167NN$7_}HU7T0{K.png


合并两图

使用 cowplot[3] 包,将两图进行合并。小编对该包的介绍做过几期,可见:cowplot包:用R添加水印。其他合并的方式还有:R可视乎|合并多幅图形R可视乎|分面一页多图

library(cowplot)
# pdf("plot_cow.pdf", width = 8, height = 4)
plot_grid(p1, p2, ncol = 1, nrow = 2)
# dev.off()

{DN{$(YQT6$@R77EN}20DNH.png

目录
相关文章
|
6月前
|
存储 算法 前端开发
1637. 两点之间不包含任何点的最宽垂直区域
1637. 两点之间不包含任何点的最宽垂直区域
46 0
|
数据可视化
绘制热图时看不出颜色差异?四种方式转换处理使结果显而“易”见
绘制热图时看不出颜色差异?四种方式转换处理使结果显而“易”见
19329 2
|
机器学习/深度学习 定位技术 容器
百度地图高级开发:map.getDistance计算多点之间的距离并输入矩阵
百度地图高级开发:map.getDistance计算多点之间的距离并输入矩阵
281 0
|
6月前
|
存储 数据可视化 关系型数据库
绘制圆环图/雷达图/星形图/极坐标图/径向图POLAR CHART可视化分析汽车性能数据
绘制圆环图/雷达图/星形图/极坐标图/径向图POLAR CHART可视化分析汽车性能数据
封装一个函数,小球原始高度不固定,弹起比例不固定、计算谈几次后,高度低于1米
封装一个函数,小球原始高度不固定,弹起比例不固定、计算谈几次后,高度低于1米
54 0
|
6月前
|
图形学 计算机视觉
GEE错误——如何将原有矢量将维度转化为地理坐标系,重投影坐标坐标无法实现?
GEE错误——如何将原有矢量将维度转化为地理坐标系,重投影坐标坐标无法实现?
67 0
跟着 Cell 学作图 | 分组蜂群图+均值线+差异分析(组间+组内)
跟着 Cell 学作图 | 分组蜂群图+均值线+差异分析(组间+组内)
155 0
wustojc2009计算图形面积
wustojc2009计算图形面积
70 0
|
定位技术 API 容器
百度地图API开发:map.getDistance计算两点之间的距离(直线距离)
百度地图API开发:map.getDistance计算两点之间的距离(直线距离)
925 0
|
存储 数据可视化
基于 ggridges 绘制剩余使用寿命密度图
基于 ggridges 绘制剩余使用寿命密度图
125 0