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
投稿
猜你喜欢
- 1: 更新代码时, 监测到本地代码改变,需要和合并,重启之后才可以, 选择No同时,代码会被冲掉,新增加的文件也会被冲掉, 但是pychar
- 在前人的基础上,我对比较优秀的sql语句进行了重新的编辑和整理,力求精短易学。希望大家可以举一反三,更好学习sql语句,如果有问题,还请翻阅
- 1. go介绍Go官方 提供一个名为go的命令,该命令可以用来下载go的依赖,构建安装go应用,运行和测试 Go程序等等, 我们比较常用的比
- 为什页面刷新会出现404因为vue项目中路由hash模式改为了history模式,由于hash模式时url带的#号后面是哈希值不会作为url
- MySQL会出现中文乱码的原因在于1.server本身设定问题,一般来说是latin12.建库建表时没有制定编码格式。MySql
- 本篇博客参考:1)DEM generation from laser scanner data using adaptive TIN mod
- 本文实例讲述了Python在字典中将键映射到多个值上的方法。分享给大家供大家参考,具体如下:问题:一个能将键(key)映射到多个值的字典(即
- 列表转化为字符串如下所示:>>> list1=['ak','uk',4]>>&
- 如果你是一名Web Developer,而且还知道CSS Sprite这个词,请先去搜索一下,也许你正在使用这个技术,但只是不知道它的名字罢
- Python 队列Queue和PriorityQueuePython的Queue模块适用于多线程编程的FIFO实现。它可用于在生产
- 最近网上再度兴起了CSS布局和Table 布局的争论。我最初颇有些不以为然:我原以为CSS 布局的意义早已深入人心,却没想到还有这么多设计师
- 我们不可能直接通过node命令来管理远程站点,这样无法保证网站的可持续运行。我们用Forever来解决这个问题,它可以将NodeJS应用以后
- goland leetcode 插件安装可以提高刷题效率,对于学习算法的同学是个不错的选择安装使用步骤:安装插件:a. 左上角Goland
- python logging日志模块的详解日志级别日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR C
- zyw147 提出问题:ASP读取指定xml 的节点?怎么用ASP《不是JS》取出指定的节点? 例如我想取出北京,我在ASP客户端提交的是
- 变量不需要声明Python的变量不需要声明,你可以直接输入:>>>a = 10那么你的内存里就有了一个变量a, 它的值是1
- 本文实例为大家分享了python使用正则筛选信用卡的具体代码,供大家参考,具体内容如下本文来源于两个简单的题目:1.判断一对单词是否是&qu
- 方法组成模式方法里的所有语句都必须处在同一个归纳层次上无用的注释让代码自我表白标注为什么这样,而不是如何这样对方法表现进行描述等于重复表现这
- pycharm是个很不错的python开发工具,大大缩短了python项目的创建时间以及调试时间在使用python写脚本一段时间后,想尝试使
- 继续上一篇,针对Bootstrap Metronic菜单栏整理的笔记分享给大家,供大家参考,具体内容如下1.简介1) .环境配置