pythonic生物人

这个顶刊宠图,实现这么简单!

本期主角-山峦图。

下面使用R简单实现山峦图。


数据

使用“1.4.12 weather数据集”,

Image

R实现

使用R ggridges完成。这里用双组山峦图快速观察不同月份的最低温度和最低温度的分布差异。

## 25.2_01
# 未经过允许禁止转载!
# @Author  :  公众号:pythonic生物人
# @Desc    :   25.2 分组山峦图

# 数据预处理
weather_long <- weather %>%
  mutate(Month = month(Date, label = TRUE, abbr = FALSE, locale = "en_US.UTF-8")) %>%
  pivot_longer(c("Low Temperature [F]", "High Temperature [F]"), names_to = "Temp_Type", values_to = "Temperature")

# 绘制山峦图
ggplot(weather_long, aes(x = Temperature, y = Month, fill = Temp_Type)) +
  geom_density_ridges(
    scale = 1.5, # 控制山脊间距
    bandwidth = 3, # 核密度平滑带宽
    alpha = 0.8, # 透明度
    rel_min_height = 0.01# 过滤极低密度区域
  ) +
  scale_fill_manual(
    values = c("Low Temperature [F]" = "#dc2624", "High Temperature [F]" = "#2b4750"),
    labels = c("Low Temperature (F)", "High Temperature (F)") # 图例标签
  ) +
  labs(
    x = "Temperature (F)", # x 轴标题
    y = NULL# y 轴标题
  ) +
  coord_cartesian(xlim = c(-40, 110)) + # x 轴范围
  custom_theme # 使用上文自定义主题
Image

怎么读图:

山峦图,也称为堆叠密度图(Ridgeline Plot),展示多个分布的密度曲线,通常以重叠或有间距的形式排列。这种图形类似于山峦的轮廓,因而得名。

横轴表示温度范围,纵轴表示月份变量,曲线高度和形状反映数据集中程度与分布形态,不同颜色代表高温和低温组。


获取绘图代码+测试数据+数据处理方法+依赖包安装方法,

👇(备注:629)

图片