详解Python+Matplotlib绘制面积图&热力图

作者:侯小啾 时间:2021-10-10 10:16:29 

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()

图像效果呈现如下:

详解Python+Matplotlib绘制面积图&热力图

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绘制面积图&热力图

来源:https://blog.csdn.net/weixin_48964486/article/details/124112740

标签:Python,Matplotlib,面积图,热力图
0
投稿

猜你喜欢

  • Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法

    2023-07-14 14:37:00
  • 关于 MediaPlayer 播放器参数详解

    2008-08-10 18:33:00
  • VsCode中ctrl+s后会在当前目录下自动生成dist目录的方法

    2023-04-25 09:19:41
  • 使用python3 实现插入数据到mysql

    2024-01-15 07:53:22
  • python 字典访问的三种方法小结

    2022-03-25 06:07:26
  • Python使用Requests请求网页方式

    2022-10-08 06:01:09
  • 在SUSE10环境下安装和配置MySQL数据库

    2008-12-17 15:03:00
  • 使用python进行图片的文字识别详细代码

    2021-06-27 07:01:06
  • pycharm如何使用anaconda中的各种包(操作步骤)

    2021-10-18 05:35:11
  • Python语法学习之正则表达式的量词汇总

    2023-07-20 03:08:59
  • vue自定义filters过滤器

    2024-04-30 08:45:12
  • Vue前端表格导出Excel文件的图文教程

    2024-04-09 10:46:45
  • asp内置对象ObjectContext详解

    2007-09-18 13:16:00
  • 十行Python代码实现文字识别功能

    2024-01-01 14:55:09
  • 如何利用SysOjects来获知数据库的信息?

    2010-01-01 15:43:00
  • python实现excel转置问题详解

    2023-06-27 23:27:27
  • 发一个自己用的JS框架(试用版^_^)

    2011-09-11 18:53:24
  • MySQL长字符截断的实现示例

    2024-01-25 23:55:01
  • python嵌套字典比较值与取值的实现示例

    2023-12-25 01:28:35
  • Go语言标准库之strconv的使用

    2024-04-23 09:42:56
  • asp之家 网络编程 m.aspxhome.com