详解Python+Matplotlib绘制面积图&热力图
作者:侯小啾
这篇文章主要介绍了如何利用Python+Matplotlib绘制面积图喝热力图,文中的示例代码讲解详细,对我们学习Python有一定帮助,需要的可以参考一下
1.绘制面积图
面积图常用于描述某指标随时间的变化程度。其面积也通常可以有一定的含义。
绘制面积图使用的是plt.stackplot()方法。
以小学时期学的 常见的追击相遇问题中的速度时间图像为例,下边绘制出一幅简单的v-t图像。
全局字体设为默认的黑体,时间为从第0秒到第10秒,描述的是甲乙两个物体的速度。显然,面积则表示位移。
标题部分字体使用楷体(将系统中的TTF字体文件"STKAITI.TTF"复制到了当前目录下)。
import matplotlib.pyplot as plt from matplotlib import font_manager fig = plt.figure(1, facecolor='#ffffcc', figsize=(6, 6)) plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.rcParams['axes.facecolor'] = '#cc00ff' x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] v1 = [1, 1, 1, 2, 3, 4, 5, 5, 5, 5, 5] v2 = [0.5, 0.5, 0.5, 1, 1.5, 2, 2.5, 3, 3, 2, 1] plt.stackplot(x, v1, color=['#ff0000']) plt.stackplot(x, v2, color=['#33ff66']) plt.xlim(0, 10) plt.title('v-t图像', fontsize=25, color='#0033cc', fontproperties=font_manager.FontProperties(fname="STKAITI.TTF")) plt.xlabel('t/s') plt.ylabel('v/(m/s)') plt.legend(['甲', '乙'], bbox_to_anchor=(0.2, 0.95)) plt.show()
图像效果呈现如下:
2.绘制热力图
在数据分析中,热力图也是一种常用的方法,热力图通过色差、亮度来展示数据与数据之间的差异。
绘制热力图使用的是plt.imshow()方法,这个方法也即matplotlib中图像处理常用的方法。
下边做一个热力图的案例示例:
import matplotlib.pyplot as plt from matplotlib import font_manager import numpy as np np.random.seed(30) data = np.random.randint(70, 100, (30, 8)) plt.imshow(data) plt.xticks(range(0, 8), ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']) plt.yticks(range(0, 30), np.array(range(1, 31), dtype='U3')) # 显示颜色条 plt.colorbar() plt.title('30个产品的ABCDEFGH指标热力图', fontsize=25, color='#0033cc', fontproperties=font_manager.FontProperties(fname="STKAITI.TTF")) plt.show()
图像效果呈现如下:
到此这篇关于详解Python+Matplotlib绘制面积图&热力图的文章就介绍到这了,更多相关Python Matplotlib面积图 热力图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!