十八、Matplotlib绘图(下)
编辑日期: 2024-11-28 文章阅读: 次
十八、Matplotlib绘图(下)
我们拿到一堆数据,首先面临的问题是该选用哪类图,去可视化它们,然后才是如何绘制它们。今天这篇文章,解决该选用哪类图去可视化的问题。 根据使用场景不同,参考前人总结,一般划分为6类图。
1 关联关系
用于可视化两个或多个变量之间的相互关系,当一个变量发生变化时,另一个变量与之如何变化。
例如,边缘直方图:
2 排序
有序图有效地传达了条目的排名顺序。在图表上方添加度量标准的值,用户可以从图表本身获取精确信息。
例如,有序条形图:
3 分布
分布图反映数据分布情况,最常用的频率直方图,柱子高度表示出现的次数。
例如,下图是类型变量的直方图,每种类型可能有几类取值,通过不同颜色可以看出来:
4 组成
饼图是最常用的表达组成整体的每个部分占有率的图
如下所示,饼图表示整体是由4个国家组成,每个国家的COVID-19的死亡人数:
5 变化
变化类相关的图用于显示给定度量随时间变化的方式。
例如,如下带波峰波谷的时序图:
6 偏差
根据指标查看条目的变化情况,并可视化差异的顺序和数量等。
例如,发散型条形图:
7 小demo:带stacked的柱状图
matplotlib 具有很强的图形表达能力,呈现出stacked的特点,matplotlib中只需要设置一个bottom
属性。如下例子,设置为men
的数据,图表类型依然是bar
图。
import matplotlib.pyplot as plt
labels = ['1', '2', '3', '4', '5']
men = [20, 35, 30, 35, 27]
women = [25, 32, 34, 20, 25]
width = 0.35
fig, ax = plt.subplots()
ax.bar(labels, men, width, label='Men')
ax.bar(labels, women, width, bottom=men, label='Women')
ax.legend()
在后面专题绘制更多图形时,我们会更加深入到matplotlib绘图的重要细节中,到那时,我们会有更多的机会了解matplotlib的绘图API,各种属性。
8 seaborn
接下来,我们从以上6类图中,选取几种典型性的图,使用matplotlib绘制出来,基于前人已经绘制的图形基础上,我们再做润色,争取消化它们的同时做出更加美观的可视化图。
提到matplotlib,我们就不得不提seaborn,因为我们知道matplotlib本身已经足够强大,而seaborn又是基于它,开发了一些更加高层的API,让我们绘图更加如虎添翼,没有必要再去重复造轮子,所以能用seaborn的地方,尽量使用它,更少的代码,实现更加强大的可视化图。
Python 20个专题完整目录: