joypy,一个Python绘制脊线图的工具库!
你好,我是郭震
今天介绍脊线图的绘制。
脊线图(Ridgeline Plot)介绍
脊线图,又称为
Joy Plot
,是一种用于展示和比较多个组数据分布的可视化工具。这种图形以层叠和重叠的方式展示每个组的密度估计或频率分布,使得不同组之间的比较直观且具有艺术美感。脊线图特别适合展示数据如何随时间或条件变化,常用于金融、气象、社会科学等领域。
绘制脊线图的步骤解释
以下是基于Python中
joypy
库来绘制脊线图的详细步骤解释:# 导入必要的库
import pandas as pd
import joypy
from matplotlib import pyplot as plt
from matplotlib import cm
import numpy as np
导入库:引入 pandas
用于数据处理,joypy
用于生成脊线图,matplotlib.pyplot
和matplotlib.cm
用于图形展示和颜色映射。** numpy
**:用于生成或处理数学数据。
# 创建模拟数据
data = {
'Month': ['January', 'February', 'March', 'April', 'May', 'June'] * 10,
'Year': ['Year 1']*6 + ['Year 2']*6 + ['Year 3']*6 + ['Year 4']*6 + ['Year 5']*6 + ['Year 6']*6 + ['Year 7']*6 + ['Year 8']*6 + ['Year 9']*6 + ['Year 10']*6,
'Temperature': np.random.normal(loc=0.0, scale=1.0, size=60) + np.arange(60)%6
}
数据字典:定义一个包含月份、年份和温度的字典。月份重复10次以模拟10年的数据,温度数据通过正态分布随机生成并添加一个随月份变化的趋势。
df = pd.DataFrame(data)
df['Month'] = pd.Categorical(df['Month'], categories=[
'January', 'February', 'March', 'April', 'May', 'June'
], ordered=True)
创建DataFrame:使用 pandas.DataFrame
将数据字典转换为数据框。设置月份为有序分类:将 Month
列转换为有序的分类数据类型,确保在图形显示时月份能按正确的顺序排列。
# 绘制脊线图
fig, axes = joypy.joyplot(
df,
by='Month',
column='Temperature',
colormap=cm.plasma,
figsize=(12, 8),
overlap=0.1 # 控制重叠
)
** joypy.joyplot()
**:调用joyplot
函数绘制脊线图,指定按Month
分组,使用Temperature
列的数据绘图,颜色映射为plasma
,图形大小为12x8英寸,各图层重叠程度为0.1。
# 添加标题
plt.title('Monthly Temperature Distribution Over the First Half of the Year')
plt.show()
扩展
colormap(颜色映射)是用来将数据点映射到颜色的功能,它有许多内置的颜色映射可供选择。
Perceptually Uniform Sequential: viridis
:暗的蓝绿色到明亮的黄色,这是Matplotlib的默认颜色映射。plasma
:从深紫色到亮黄。inferno
:从黑色到红色,最后是黄色。magma
:从黑色到亮粉红。Sequential: Blues
、Greens
、Reds
:单一色调,从浅到深。binary
、gray
:从黑到白的灰度图。copper
:铜色调,从黑到亮铜色。Sequential (2): spring
、summer
、autumn
、winter
:模拟四季的颜色变化。cool
:从青色到洋红色。hot
:从黑色到红色,然后到黄色,最终是白色。
colormap=
cm.spring
colormap=
cm.cool
更多颜色选择,同学们可以去尝试其他配色。
我打造了一个《Python从零到高薪就业全栈视频课》,目前上线700节课程,每节课15分钟,总共超180个小时。包括:《从零学Python》、《Python进阶》、《爬虫》、《NumPy数值分析》、《Pandas数据分析》、《Matplotlib和Pyecharts绘图》、《PyQt软件开发》、《接单项目串讲》、《Python办公自动化》、《多线程和多进程》、《unittest和pytest自动化测试》、《Flask和Django网站开发》、《基础算法》、《人工智能入门》、《机器学习》、《深度学习》、《Pytorch实战》,将我过去工作8年以及现在科研的经历都融入到课程中,里面有很多实际项目,是一个全栈技术课。
如果你想掌握全栈开发技术,提升你自己,提升就业能力,多学技能做副业项目赚钱等,可以报名,课程带有我的答疑。
价格现在比较优惠,推荐现在加入。长按下方二维码查看,报名后加我微信:gz113097485
最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。