专题第20篇:matplotlib 绘图(中)

Python与算法社区

共 1583字,需浏览 4分钟

 ·

2020-10-30 05:05


我的施工之路


1我的施工计划
2数字专题
3字符串专题
4列表专题
5流程控制专题
6编程风格专题
7函数使用
8面向对象编程(上篇)
9面向对象编程(下篇)
10十大数据结构
11包和模块使用总结
12Python正则专题总结
13设计模式
14Python时间模块总结
15 Python 装饰器
16 Python 迭代器
17 Python 生成器
18 Python 绘图入门
19 Python 绘图神器matplotlib上

今天,继续施工专题第20篇:matplotlib常用图及功能

我们拿到一堆数据,首先面临的问题是该选用哪类图,去可视化它们,然后才是如何绘制它们。今天这篇文章,解决该选用哪类图去可视化的问题。

根据使用场景不同,参考前人总结,一般划分为6类图。

1 关联关系

用于可视化两个或多个变量之间的相互关系,当一个变量发生变化时,另一个变量与之如何变化。

例如,边缘直方图:

2 排序


有序图有效地传达了条目的排名顺序。在图表上方添加度量标准的值,用户可以从图表本身获取精确信息。
例如,有序条形图:


3 分布


分布图反映数据分布情况,最常用的频率直方图,柱子高度表示出现的次数。
例如,下图是类型变量的直方图,每种类型可能有几类取值,通过不同颜色可以看出来:


4 组成


饼图是最常用的表达组成整体的每个部分占有率的图
如下所示,饼图表示整体是由4个国家组成,每个国家的COVID-19的死亡人数:

5 变化


变化类相关的图用于显示给定度量随时间变化的方式。例如,如下带波峰波谷的时序图:

6 偏差

根据指标查看条目的变化情况,并可视化差异的顺序和数量等。


例如,发散型条形图:


更多以上每类图的demo参考:


Matplotlib绘制的50类图

7 小demo:带stacked的柱状图

matplotlib 具有很强的图形表达能力,呈现出stacked的特点,matplotlib中只需要设置一个bottom属性。如下例子,设置为men的数据,图表类型依然是bar图。

import matplotlib.pyplot as plt
labels = ['1''2''3''4''5']
men = [2035303527]
women = [2532342025]
width = 0.35
fig, ax = plt.subplots()
ax.bar(labels, men, width, label='Men')
# bottom
ax.bar(labels, women, width, bottom=men, label='Women')
ax.legend()

在后面专题绘制更多图形时,我们会更加深入到matplotlib绘图的重要细节中,到那时,我们会有更多的机会了解matplotlib的绘图API,各种属性。

8 seaborn

接下来,我们从以上6类图中,选取几种典型性的图,使用matplotlib绘制出来,基于前人已经绘制的图形基础上,我们再做润色,争取消化它们的同时做出更加美观的可视化图。

提到matplotlib,我们就不得不提seaborn,因为我们知道matplotlib本身已经足够强大,而seaborn又是基于它,开发了一些更加高层的API,让我们绘图更加如虎添翼,没有必要再去重复造轮子,所以能用seaborn的地方,尽量使用它,更少的代码,实现更加强大的可视化图。

如果你喜欢我的这些施工专题文章,欢迎给我点个赞,有时真的坚持不下去了。其实,坚持原创410多篇,并不容易!最近半年,我周末几乎没休息过。

浏览 52
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报