python数据可视化开发:Matplotlib库基础知识

news2024/10/7 16:22:58

文章目录

  • 前言
  • 01.工具栏组件
  • 02.图表数据
  • 03.设置字体字典
    • (1)全局字体样式
    • (2)常用中文字体对应名称
    • (3)查询当前系统所有字体
  • 04.图像配置实例
  • 05.图表标题
  • 06.文本组件
  • 07.坐标轴标签组件
  • 08.网格组件
  • 09.绘制折线
  • 10.图例组件
  • 11.图表渲染
  • 总结


前言

在这里插入图片描述

  • Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。
  • Matplotlib 可以用来绘制各种静态,动态,交互式的图表。
  • Matplotlib 是一个非常强大的 Python 画图工具,我们可以使用该工具将很多数据通过图表的形式更直观的呈现出来。
  • Matplotlib 可以绘制线图、散点图、等高线图、条形图、柱状图、3D 图形、甚至是图形动画等等。

使用Matplotlib生成一个曲线的完整代码(其中部分代码是可以省略的,为了便于将相关属性快速有效的予以记录,本文尽量将相关属性都列了出来。)

# 导入库
import numpy as np
import matplotlib.pyplot as plt

# 设置中文显示
plt.rcParams['font.sans-serif'] = ['microsoft yahei']  #显示中文

# 01.工具栏组件
plt.rcParams['toolbar'] = 'toolbar2'  # 设置工具栏

# 02.模拟数据
x = np.linspace(0.0, 5.0, 100)
y = np.cos(2 * np.pi * x) * np.exp(-x)

# 03.设置字体字典
font = {'family': 'microsoft yahei',
        'color': '#000',
        'weight': 'normal',
        'size': 12}

# 04.图像配置实例
plt.figure('漏刻有时数据可视化 - TestWin', facecolor='w')  # 设置图形弹出窗口标题
# 05.图表标题
plt.title('漏刻有时折线图', fontdict=font, loc='center', y=1)  # 图表标题
# 06.文本组件
plt.text(0.91, -0.31, r'智能化数据的转账点', fontdict=font, c='b', rotation=30)  # 文本
# 07.坐标轴标签组件
plt.xlabel('时间:单位 (s)', fontdict=font)  # x轴
plt.ylabel('数值:单位 (mv)', fontdict=font)  # y轴
# 08.网格组件
plt.grid(which='major', axis='both', color='g', linestyle='-', linewidth=0.1)  # 网格
# 09.绘制折线
plt.plot(x, y, 'r', label='直连线', marker='d')  # 绘制折线
# 10.图例组件
plt.legend()  # 设置图例
# 11.图表渲染
plt.show()

01.工具栏组件

'''
工具栏组件
# 注意,应当放置在图像实例化之前。
# None模式:禁用工具栏
# toolbar2模式:默认工具栏布局
# toolmanager模式:工具栏布局在首行
'''
plt.rcParams['toolbar'] = 'toolbar2'  # 设置工具栏

toolmanager模式:
在这里插入图片描述
RcParams说明文档:RcParams

02.图表数据

折线图,一般是x轴和y轴数据,设置为对应的列表即可。本案例作为Matplotlib库的基础知识,只做简单的数据展示,不涉及更复杂的数据读取和计算。
如:

  • numpy模拟数据
x = np.linspace(0.0, 5.0, 100)
y = np.cos(2 * np.pi * x) * np.exp(-x)
  • 自定义固定数据
x = [1, 2, 3, 4, 5]
y = [i * 2 for i in x] #推导式
  • random随机数据
x = [random.randint(0, 10) for i in range(10)]
y = [i * 2for i in x]
  • pandas读取本地excel表格数据
  • pymysql读取数据库数据

03.设置字体字典

(1)全局字体样式

Matplotlib如果未正常设置中文字体,会出现乱码。基于实际开发情况,图像标题、图表标题、图例和标签都涉及到中文字体的应用,因此采用使用 matplotlib 模块的 rcParams,全局字体样式:

plt.rcParams['font.sans-serif'] = ['microsoft yahei']`

当然,也可以具体在某些组件使用时,单独调用对应的属性,如:

plt.title('自定义标题名称', fontproperties='SimHei')

(2)常用中文字体对应名称

中文名称英文名称
宋体SimSun
黑体SimHei
微软雅黑Microsoft YaHei
微软正黑体Microsoft JhengHei
新宋体NSimSun
新细明体PMingLiU
细明体MingLiU
标楷体DFKai-SB
仿宋FangSong
楷体KaiTi
隶书LiSu
幼圆YouYuan
华文楷体STKaiti
华文宋体STSong
华文中宋STZhongsong
华文仿宋STFangsong

(3)查询当前系统所有字体

如果要实时查询当前系统的所有字体,可以使用matploylib自带的font_manager属性进行遍历查询:

# 查询当前系统所有字体
from matplotlib.font_manager import FontManager
sys_fonts = [f.name for f in FontManager().ttflist]
for f in sorted(sys_fonts):
    print(f)

字体结果展示:
在这里插入图片描述

04.图像配置实例

plt.figure() 函数可以用于创建绘图窗口,可以传入以下常用参数:

matplotlib.figure.Figure(figsize=None, dpi=None, *, facecolor=None, edgecolor=None, linewidth=0.0, frameon=None, subplotpars=None, tight_layout=None, constrained_layout=None, layout=None, **kwargs)
如:

# 配置实例
plt.figure('漏刻有时数据可视化 - TestWin', facecolor='w')  # 设置图形弹出窗口标题

在这里插入图片描述

参数说明
num传入整数或字符串。整数可以指定创建或激活对应编号窗口并保存至 number 属性,字符串可以设置该窗口标题
figsize传入两个浮点数组成的元组,设置绘图窗口的宽和高
dpi传入整数,设置分辨率
facecolor传入代表颜色的字符串,设置背景色
edgecolor传入代表颜色的字符串,设置边框颜色
clear如果传入True,且当前窗口已经有绘图时,清空当前绘图

figure说明文档:matplotlib.figure

05.图表标题

06.文本组件

07.坐标轴标签组件

08.网格组件

09.绘制折线

10.图例组件

11.图表渲染


总结

Matplotlib的基础选项属性以官网为准https://matplotlib.org/stable/api/pyplot_summary.html,由于是英文缘故,在实际学习和开发过程中,需要尽量多实践多练习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/179291.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【头歌】双向链表的基本操作

双向链表的基本操作第1关:双向链表的插入操作任务描述本关任务:编写双向链表的插入操作函数。相关知识双链表中用两个指针表示结点间的逻辑关系:指向其前驱结点的指针域prior,指向其后继结点的指针域next。双向链表的结点结构如图…

MySQL数据库面试题[万字汇总]

1) MySQL数据库相关错题本1、存储引擎相关1、MySql的存储引擎的不同MySQL存储引擎主要有InnoDB, MyISAM, Memory, 这三个区别在于:Memory是内存数据引擎, 会断电重启(在双M或者主从架构下会产生较多异常), 且不支持行级锁. 默认索引是数组索引, 支持B索引InnoDB和MyISAM的区别:…

流批一体计算引擎-5-[Flink]的Python Table API和SQL程序

参考Flink从入门到入土(详细教程) 参考flink的默认窗口触发机制 参考彻底搞清Flink中的Window 参考官方Python API文档 1 IDEA中运行Flink 从Flink 1.11版本开始, PyFlink 作业支持在 Windows 系统上运行,因此您也可以在 Windows 上开发和…

【数据结构】极致详解:树与二叉树(上)——结构与概念

目录 🛫前言🛫: 🚀一、树🚀: 1.树的概念: 2.树的相关概念: 3.树的表示: 4.树的实际使用场景: 🛰️二、二叉树🛰️:…

acwing-Diango项目 (后半)

acwing-Django项目 文章目录acwing-Django项目前言5. 创建账号系统5.1用户名密码登录写登录界面写注册界面写动作 实现三个函数 register login logout5.2 Web端acapp一键登录在django中集成redis(准备工作)首先 pip install django_redis配置一下缓存启动redis-serverredis在d…

特征工程——文本特征

文本特征 expansion编码 consolidation编码 文本长度特征 标点符号特征 词汇属性特征 特殊词汇特征 词频特征 TF-IDF特征 LDA特征 下面的文章主要是梯度提升树模型展开的,抽取的特征主要为帮助梯度提升树模型挖掘其挖掘不到的信息,本文介绍的所…

NodeJS Web 框架 Express 之中间件

NodeJS Web 框架 Express 之中间件参考描述中间件next()一个简单的中间件函数使用全局中间件局部中间件共享注意事项位置next()分类错误级中间件内置中间件express.urlencoded()express.json()第三方中间件参考 项目描述哔哩哔哩黑马程序员搜索引擎Bing 描述 项目描述Edge109…

从0-1开始 测试ZLMediaKit推拉流性能、延时性能

流媒体开发系列文章 文章目录流媒体开发系列文章前言一、环境准备?二、拉流测试过程三、推流测试过程三、延时测试总结前言 目前、比较有名的流媒体服务器有ZLMediaKit、srs、live555、eadydarwin等。因为srs是单线程服务、对于多核服务器的支持需要通过部署多个服…

pytorch深度学习基础(十一)——常用结构化CNN模型构建

结构化CNN模型构建与测试前言GoogLeNet结构Inception块模型构建resNet18模型结构残差块模型构建denseNet模型结构DenseBlocktransition_block模型构建结尾前言 在本专栏的上一篇博客中我们介绍了常用的线性模型,在本文中我们将介绍GoogleNet、resNet、denseNet这类…

APT之木马静态免杀

前言 这篇文章主要是记录手动编写代码进行木马免杀,使用工具也可以免杀,只不过太脚本小子了,而且工具的特征也容易被杀软抓到,指不定哪天就用不了了,所以要学一下手动去免杀木马,也方便以后开发一个只属于…

blender导入骨骼动画方法[psa动作]

先导入女性的psk文件 然后调整缩放大小和人物一样,包括角度朝向. ctrla应用所有改变 然后选择psk文件以及其他人物模型的全部 ,然后 在Layout-物体-父级 -附带空顶相点组 image.png之后会发现所有人物多了修改器,点击其中一个修改器 点添加修改器 -数据传递 勾选顶点数据-选择顶…

人员动作行为AI分析系统 yolov5

人员动作行为AI分析系统通过pythonyolo系列网络学习模型,对现场画面人员行为进行实时分析监测,自动识别出人的各种异常行为动作,立即抓拍存档预警同步回传给后台。 我们使用YOLO算法进行对象检测。YOLO是一个聪明的卷积神经网络(CNN)&#xf…

带滤波器的PID控制仿真-1

采用低通滤波器可有效地滤掉噪声信号,在控制系统的设计中是一种常用的方法。基于低通滤波器的信号处理实例设低通滤波器为:采样时间为1ms,输入信号为带有高频正弦噪声( 100Hz)的低频(0.2Hz)正弦信号。采用低…

离散数学与组合数学-05树

文章目录离散数学与组合数学-05树5.1 认识树5.1.1 树的模型5.1.2 树的应用5.2 无向树5.2.1 定义5.2.2 树的性质5.2.3 性质应用5.3 生成树5.3.1 引入5.3.2 定义5.3.3 算法5.3.4 应用5.4 最小生成树5.4.1 引入5.4.2 定义5.4.3 算法5.5 根树5.5.1 根数定义5.5.2 倒置法5.5.3 树的家…

【编程入门】开源记事本(SwiftUI版)

背景 前面已输出多个系列: 《十余种编程语言做个计算器》 《十余种编程语言写2048小游戏》 《17种编程语言10种排序算法》 《十余种编程语言写博客系统》 《十余种编程语言写云笔记》 本系列对比云笔记,将更为简化,去掉了网络调用&#xff0…

C++模板进阶

这篇文章是对模板初阶的一些补充,让大家在进行深一层的理解。 文章目录1. 非类型模板参数2. 模板的特化2.1 概念2.2 函数模板特化2.3 类模板特化2.3.1 全特化2.3.2 偏特化2.4 类模板特化应用示例3 模板分离编译3.1 什么是分离编译3.2 模板的分离编译3.3 解决方法4.…

【各种**问题系列】什么是 LTS 长期支持

目录 🍁 什么是长期支持(LTS)版本? 🍂 LTS 版本的优点: 🍁 什么是 Ubuntu LTS? 🍂 Ubuntu LTS 软件更新包括什么? 在 Linux 的世界里,特别是谈…

【Java开发】Spring Cloud 08 :链路追踪

任何一个架构难免会出现bug,微服务相比于单体架构日志查询更为困难,因此spring cloud推出了Sleuth等组件的链路追踪技术来实现报错信息的定位及查询。项目源码:尹煜 / coupon-yinyu GitCode1 调用链追踪我们可以想象这样一个场景&#xff0c…

单一数字评估指标、迁移学习、多任务学习、端到端的深度学习

目录1.单一数字评估指标(a single number evaluation metric)有时候要比较那个分类器更好,或者哪个模型更好,有很多指标,很难抉择,这个时候就需要设置一个单一数字评估指标。例1:比较A,B两个分类器的性能&a…

Android MVVM的实现

Android MVVM的实现 前言: 在我们写一些项目的时候,通常会对一些常用的一些常用功能进行抽象封装,简单例子:比如BaseActivity,BaseFragment等等…一般这些Base会去承载一些比如标题栏,主题之类的工作&…