Python Joypy绘制嵴线图实例:八大城市气温分布可视化

Mia
Mia
发布时间:2026-10-15| 4人浏览过
原创

本文介绍如何使用Python的Joypy库绘制嵴线图,以展示八大城市日最高温和最低温的分布情况。通过解析数据读取、参数设置(如by、fill、alpha)及代码实现,演示多类别连续变量的分布对比方法,帮助读者掌握该可视化技巧。

一、概念介绍

嵴线图(ridgeline plot)是一种用于展示同一维度下多个数据分布情况的图表。其每一层嵴线(或称峰峦)实际上是一个直方图或密度图,通过层层堆叠形成最终的视觉效果。

此类图表通常适用于多类别(大于5类)连续变量数值的分布对比。需要注意的是,若某些数据的取值区间过小或分布过于均匀,其波动特征可能不易察觉,且可能影响图形的整体视觉美观度。

图形示例:

理解嵴线图的关键在于坐标轴的定义:横坐标代表数值分布区间,类似于常规图表中的y轴;纵坐标则代表每个数值序列的类别标签。嵴线的波峰位置表示在该值附近数据分布集中,频率较高。

二、数据展示

在本案例中,我们利用嵴线图来展示随机选取的八座城市在过去一年内的日最高温和最低温的分布情况。

数据来源于广州11月份天气|广州11月份气温|广州2021年11月份历史天气—全球天气网

借助爬虫工具,我们简便地收集了2020-12至2021-11期间的日度数据,得到了如下excel集合

每一个excel表格的数据呈现如下:

同一版数据,对于气候类型也绘制了马赛克图~

三、数据读入

import pandas as pd
city8_fullname_py = ['beijing','chongqing','wuhan','shenzhen','nanjing','guangzhou','chengdu','shanghai']
city8_fullname = ['北京','重庆','武汉','深圳','南京','广州','成都','上海']
 
weather_dic = {}
for i in range(len(city8_fullname)):
    df = pd.DataFrame(pd.read_excel('./2021年城市气温数据/2021年气温数据'+city8_fullname_py[i]+'.xls'))
    weather_dic[city8_fullname[i]] = df[['日期','最高温','最低温','气候类型']]
    weather_dic[city8_fullname[i]]['城市'] = pd.Series([city8_fullname[i]]*df.shape[0])
weather = weather_dic[city8_fullname[0]]
for i in range(1,8):
    weather = pd.concat([weather,weather_dic[city8_fullname[i]]],ignore_index="true")

得到的数据存放在weather中,结构如下:

四、图像绘制

这里我们需要joypy包

import joypy
import matplotlib.pyplot as plt
 
plt.figure(dpi= 90)
fig, axes = joypy.joyplot(weather, column=['最高温', '最低温'], by="城市", figsize=(13,9),
                          fill=True, legend=True,alpha=.8,
                          xlabelsize=18,ylabelsize=18,color=['tomato','dodgerblue']
                          )
plt.title('八大城市过去一年气温分布', fontsize=25,verticalalignment='bottom' )
plt.savefig(r'./绘图结果/天气-过去一年气温分布-嵴线图.png')

by参数用于指定图形中的纵坐标,即数据类别,这是必须指定的选项。

fill参数决定是否需要颜色填充。

alpha参数用于调整透明度。在面积图和嵴线图等存在图像覆盖的可视化场景中,建议调整透明度以便同时展示被覆盖部分的轮廓。当然,如果数据本身存在面积差异,则尽量将面积较小的类别前置。

结果如下所示:

总结

到此这篇关于python Joypy绘制嵴线图实例的文章就介绍到这了,更多相关python Joypy嵴线图内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。