python用Joypy绘制嵴线图实例
作者:林老头ss 发布时间:2022-03-07 02:50:43
标签:Python,joypy
一、概念介绍
嵴线图(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----在面积图和嵴线图这类会存在图像覆盖的可视化图像中,我们是建议调整透明度的,便于同时展示被覆盖部分的轮廓。当然,如果数据本身存在面积差异,则尽量面积小的类别前置。
结果如下所示:
来源:https://blog.csdn.net/qq_45400322/article/details/122519911
0
投稿
猜你喜欢
- 引言这两天遭遇了手机号登录相关的压测需求,算是比较棘手的。主要原因有两个,第一:之前从来没有接手过这个项目,不熟悉各种规则;第二:数据量偏大
- 在你的程序初始化时使用如下代码: <?php $Php2Html_FileUrl = $_SERVER["REQU
- 此文译自Fred Wilson 2010年2月在迈阿密举行的Web未来应用的年会上的演讲谢谢青云推荐了这篇这么好的演说谢谢卓和百忙中抽空帮我
- 一: 删除LOG1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库2:删除LOG文件3:附加数据库 企业管理器->服务器-
- 本文实例总结了Python实现判断一个字符串是否包含子串的方法。分享给大家供大家参考,具体如下:1.使用成员操作符 in>>&g
- 一、模块模块可以看成是一堆函数的集合体。一个py文件内部就可以放一堆函数,因此一个py文件就可以看成一个模块。如果这个py文件的文件名为mo
- 需求说明:通过在界面上输入春联的上、下批和横批汉字从而生成春联图像,最后将春联图片保存。有实际需要的还可以将春联打印。实现过程:实现思路是先
- 主要内容所谓RPC,是远程过程调用(Remote Procedure Call)的简写,网上解释很多,简单来说,就是在当前进程调用其他进程的
- 我就废话不多说了,大家还是直接看代码吧~import numpy as np#从scipy库中导入插值需要的方法 interpolatefr
- 数据描述每条数据项储存在列表中,最后一列储存结果多条数据项形成数据集data=[[d1,d2,d3...dn,result],
- 从开始认识CSS(DW4)那时起,我就知道了CSS的强大,但从未用CSS排版过,因为我曾经尝试过学习,但感觉太难了而且用DW的表格,所见及所
- 大数据处理经常要用到一堆表格,然后需要把数据导入一个list中进行各种算法分析,简单讲一下自己的做法:1.如何读取excel文件网上的版本很
- 占位符说明1、%c,格式化字符及其ASCII码2、%s,格式化字符串3、%d,格式化整数4、%u,格式化无符号整数5、%o,格式化无符号八进
- 前言本文继续学习下 Python 编程在网络攻防领域的应用,主要是通过 Python 脚本进行 SSH 登录爆破和 FTP 服务登录爆破。S
- 一、简介是一个 python 内置包,不需要额外安装即可使用urllib 是 Python 标准库中用于网络请求的库,内置四个模块,分别是u
- 一、前言前几天,在写一个与差分隐私相关的简单程序时,我发现了一些奇怪的东西:相对于其他的随机数生成函数,Python的random.rand
- 准备篇:1、配置防火墙,开启80端口、3306端口vi /etc/sysconfig/iptables-A INPUT -m state -
- 导语轻松瘦 | 和闺蜜减肥的日常,谁说闺蜜是减肥路上的一座山?哈喽!大家好!我是木木子吖~小编有一个闺蜜,还是同一所学校读书毕业的,这体重在
- 任何位置都能明确“我在哪里?这里有什么?从这里能去哪里?” 小时候,童话故事都告诉我们,迷路可不是一件好事。那会伴随着困惑、沮丧、
- 本文实例讲述了PHP实现二维数组中的查找算法。分享给大家供大家参考,具体如下:方法1:silu从左下角最后一行的第一个元素开始,遍历。如果小