pythonic生物人

Python“万水千山图”—山峦图/嵴线图/峰峦图

山峦图/嵴线图/峰峦图(Ridgeline Plot),通过使用核密度估计(KDE)或直方图来表示各组数据的分布特征,并在纵轴上将各分布分组排列。

山峦图是CNS等顶级期刊中的常客,例如《Nature》,

Image

山峦图也常常出现在报刊杂志中,例如《BBC》,

Image

Python matplotlib可以很简单的实现山峦图,先来看一下效果图:

Image

数据准备

主要是读入weather数据并使用pandas转换。

# 数据准备
months = weather.index.month_name().unique()  # 获取数据索引中的唯一月份名称

samples = [[
    weather[weather.index.month_name() == month]["最低温度(F)"],
    weather[weather.index.month_name() == month]["最高温温度(F)"],
] for month in months]  # 按月份构建一个包含最低温度和最高温度的列表


Python matplotlib实现山峦图

这里展示分组山峦图,使用Python matplotlib及其扩展包实现,核心代码,

# 绘制山脊图
fig = ridgeplot(
    samples=samples,  # 输入样本数据
    labels=months,  # 为每条曲线指定对应的月份标签
    bandwidth=4,  # 设置核密度估计的平滑带宽
    kde_points=np.linspace(-40, 110, 400),  # 设置核密度估计的计算点范围和分辨率
    spacing=0.4,  # 设置曲线之间的间距
    colorscale=["#006a8e", "#b1283a"],  # 设置颜色渐变,从蓝色到红色
    colormode="trace-index-row-wise",  # 按行顺序为不同曲线分配颜色
)
Image

红色展示当年当月最低温度变化,蓝色展示当年当月最高温度变化。

本期内容「绘图数据+代码+代码详细解释」已上传👉Python matplotlib保姆级教程

👇加入学习(备注:399),

Image