matplotlib

article/2025/8/29 3:23:05

今天我们来介绍一下python的一个可视化工具matplotlib

matplotlib

使用matplotlib的方式有很多,但最通常的是Pylab模式的ipython(-ipython –pylab)

matplotlib的api都位于matplotlib.pyplot中,所以一般的引入方式为:

import matplotlib.pyplot as plt

Figure、Subplot

Figure

matplitlib的图像必须在Figure中,Figure创建方式如下:

fig = plt.figure() # 之后会弹出一个Figure窗口

创建好Figure后,并不能直接绘图,需要使用add_subplot创建一个或多个子图,在子图中绘图,创建方式如下:

ax1 = fig.add_subplot(2,2,1) # 将figure分为四块,在第一块创建一个子图;返回AxesSubplot对象

之后我们就可以绘制我们的图像了

plt.plot(randn(50).cumsum(), 'k--') 

Figure和subplot的创建经常使用,所以matplotlib提供了简洁的创建方式:

fig, axes = plt.subplots(2,3) # 创建一个新Figure、并返回一个含有已创建subplot对象的Numpy数组 
ax = axes[0,1] # 引用第一行第二列的subplot对象

该函数的一些参数选项:

在这里插入图片描述

调整图像之间的间距

通常情况下,matplotlib会在subplot外围留下一些边距,并在subplot之间留下一些间距。

我们可以利用subplots_adjust()函数来修改间距

subplots_adjust(left=None,bootom=None,right=None,top=None,wspace=None,hspace=None) # 该函数是一个顶级函数;wspace、hspace用来控制宽度和高度的百分比,用作subplot之间的间距
plt.subplots_adjust(wspace=0, hspace=0) # 设置subplots之间的间距为0
颜色、线型和标记

matplotlib的plot()函数接受一组X和Y坐标,和一个表示颜色和线形的字符串

ax.plot(x,y,'g--') # 根据x,y绘制绿色虚线
# ax为一subplot

刻度、标签和图例

设置X轴范围:
plt.xlim() # 返回当前X轴的范围
plt.xlim([0,10]) # 将X轴的范围设为[0, 10]
# 以上方法都只对当前或最近创建的Subplot起作用
设置标题、轴标签、刻度以及刻度标签
  • 设置标题

    ax.set_title("My first matplotlib plot") # 设置对应dubplot的标题
    
  • 设置轴标签

    ax.set_xlabel() # 为对应subplot的x轴设置标签
    ax.set_ylabel()
    
  • 设置刻度

    设置刻度有两个方法,set_xticks和set_xticklabels,前者告诉maatplotlib将刻度放在对应范围的哪个位置,默认情况下这些刻度就是刻度标签;后者可以将任何其他类型的值作为标签

    ax.set_xticks([0,1,2,3,4]) # 将0,1,2,3,4作为x轴刻度标签
    ax.set_xticklabels(['one','two','three','four','five']) # 将one,two,three,four,five作为x轴刻度标签
    ax.set_yticks()
    ax.set_xticklabels()
    
添加图例

图例是标识图表元素的重要工具。

  • 方式一,在添加subplot时传入label参数
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(randn(1000).cumsum(), 'k--', label='one')
ax.plot(randn(1000).cumsum(), 'k', label='two')
ax.plot(randn(1000).cumsum(), 'k.', label='three')
ax.legend(loc='best') # loc指定图例放置的位置,'best'参数标识系统将图例放置到最不碍事的地方

在这里插入图片描述

将图标保存到文件

利用plt.savefig可以将当前图表保存到文件

plt.savefig('figpath.png', dpi=400) # 将当前图表存储为png文件
# dpi参数指定每英寸点数(分辨率)

Pandas中的绘图函数

从上面的例子中我们可以看出,matplotlib实际上是一个比较低级的画图工具,当我们绘制一张图标时,往往要指定他的多个属性,如图例,标签,标题等。而pandas中的绘图函数大大简化了这个过程。

Series与DataFrame数据都可以通过调用plot函数来绘制图表

  • Series:

    s = Series(np.random.randn(10).cumsum(), index=np.arange(0,100,10))
    s.plot()
    

在这里插入图片描述
在这里插入图片描述

  • DataFrame:

    df = DataFrame(np.random.randn(10,4).cumsum(), columns=['A','B','C','D'],index=np.arange(0,100,10))
    # columns参数指定图例名称,index指定x轴标签
    # np.random.randn(10,4)共10行4列,产生四条曲线,每条曲线十个数据点
    df.plot()
    

在这里插入图片描述
在这里插入图片描述

除了matplotlib外,还有许多优秀的画图工具,如chaco、mayavi等

目前对于matplotlib的介绍就是这些,更多的知识可以研究一下pandas官方文档(pandas正在不断地更新中,会提供越来越多的函数),链接如下:

http://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html


http://chatgpt.dhexx.cn/article/iAtrDAPs.shtml

相关文章

Matplotlib绘制动图

简介 Matplotlib是非常著名的Python绘图库,支持非常复杂的底层定制化操作。本文通过Matplotlib中的动画绘制工具来讲解如何绘制动态图,首先讲解通过交互模式如何显示动态图,继而讲解通过两个动画类来实现动图地保存(GIF格式&…

python使用matplotlib绘图

文章目录 一、模块介绍二、模块安装三、主要API介绍设置绘图风格plt.style.use()新建画布plt.figure()绘制折线图plt.plot()绘制垂直柱状图plt.bar()绘制水平柱状图plt.barh()绘制饼状图plt.pie()绘制散点图plt.scatter()设置横纵坐标的标签plt.xlabel(), plt.ylabel()添加文字…

零基础学Python:Matplotlib用法

本文目录: 一、初识matplotlib二、线形图plot()函数用法 三、散点图scatter()函数用法 四、饼状图pie()函数用法 五、直方图hist()函数用法 前言: 📢📢📢 🏅&…

Matplotlib库的介绍及使用

Matplotlib库的介绍及使用 1. pyplot子库的基本使用1.1 Matplotlib库的介绍1.2 plot函数1.3 pyplot的中文显示1.4 pyplot的文本显示 2. pyplot基础图表函数2.1 pyplot饼图的绘制2.2 pyplot直方图的绘制2.3 pyplot极坐标图的绘制2.4 pyplot散点图的绘制 1. pyplot子库的基本使用…

【Python数据分析】Matplotlib的初步认识

文章目录 1.什么是Matplotlib2.常见图形种类及意义1.折线图2.散点图3.柱状图4.直方图5.饼图 3.认识Matplotlib图像结构1.第一层2.第二层3.第三层 4.折线图初体验1.设置标题2.中文显示3.自定义X轴刻度4.一图多线5.一图多个坐标系子图 1.什么是Matplotlib Matplotlib是一个Pytho…

使用Matplotlib绘图

🤵 Author :Horizon Max ✨ 编程技巧篇:各种操作小结 🎇 机器视觉篇:会变魔术 OpenCV 💥 深度学习篇:简单入门 PyTorch 🏆 神经网络篇:经典网络模型 💻 …

Python -- Matplotlib库的使用

Matplotlib库的使用 要点:matplotlib是提供数据绘图功能的第三方库,其pyplot子库主要用于实现各种数据展示图形的绘制。 1. matplotlib.pyplot库概述 matplotlib.pyplot是matplotlib的子库,引用方式如下: >>>import ma…

Matplotlib库介绍

目录 一、Matplotlib库介绍 二、基本绘图流程 三、pyplot基础语法 1.创建画布与创建子图 2.添加画布内容 3.保存与展示图形 4.不同图表绘制函数 四、其它相关内容 1.线条颜色(color)的设置 2.线条标记(marker)的设置 3.线条类型(line)的设置 一、Matplotlib库介绍 …

Python Matplotlib库用法笔记

Python Matplotlib库用法笔记 一、了解Matplotlib库1 Matplotlib是什么2 Matplotlib的作用3利用Matplotlib做一个简单的画图3.1matplotlib.pyplot模块3.2画图 4 Matplotlib的三层结构4.1容器层4.2 辅助显示层4.3图像层 二、折线图1 折线图的绘制与显示1.1设置图形的风格 2 设置…

Python之数据可视化——matplotlib系统介绍(一)

matplotlib基础系统介绍 目录 1. Matplotlib概述 2. 讲解Matplotlib核心原理 3. Matplotlib相关基础操作介绍 3.1 创建figure(画布)的方式及完整绘图步骤3.2 线型设置3.3 中文与特殊符号(负号)相关支持设置3.4 图例和网络的设置3.5 坐标轴的设置和相关操作3.6 figure的区域…

Matplotlib下载、安装、简单使用

Matplotlib Matplotlib是一个Python 2D绘图库,它以多种硬拷贝格式和跨平台的交互式环境生成出版物质量的图形。它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案,也可用于Python脚本,Python和IPython (opens new win…

Python--Matplotlib(基本用法)

Matplotlib Matplotlib 是Python中类似 MATLAB 的绘图工具,熟悉 MATLAB 也可以很快的上手 Matplotlib。 1. 认识Matploblib 1.1 Figure 在任何绘图之前,我们需要一个Figure对象,可以理解成我们需要一张画板才能开始绘图。 import matplo…

【51单片机】AS608指纹锁设计

文章目录 一、主要功能二、硬件资源1.硬件准备2.硬件连接 三、软件设计1.软件结构2.主要代码 四、实验现象联系作者 一、主要功能 系统运行后,LCD显示指纹锁主界面,显示模块指纹库剩余容量和指纹对比等级数。如果已经添加了指纹的话,直接在主…

基于STM32的多功能门禁系统(AS608指纹识别、密码解锁、刷卡解锁)

目录 一、项目功能 二、视频 三、原理图 4、材料选择 5、部分程序 资料下载地址:基于STM32的多功能门禁系统 一、项目功能 1、AS608指纹解锁;可以录入、删除、验证指纹; 2、密码解锁;可以密码验证、修改密码和保存密码&a…

AS608指纹模块的上位机检测

​​​​​引言 最近在搞这个基于STC51的指纹锁,目前已经差不多完成,对于我这个小白来说还是有点难度的。上位机检测是之前做的,现在也算是回忆总结一下吧! 正文 AS608指纹模块的介绍 PCB: 具体操作 第一步 将AS…

Arduino Nano+AS608指纹门禁系统

100元制作宿舍指纹门禁系统 效果图:硬件清单各个模块连接程序流程图驱动文件以及配置烧录环境驱动文件配置编译器 局部源码**演示视频**更新内容完整源码下载: 效果图: 这里用的是电容式的AS608指纹模块 硬件清单 名称用途Arduino Nano开发…

ATECC608A的完美兼容国产替代芯片

工程师强烈推荐的一款ATECC608A的完美兼容替代加密芯片:MOD8ID MOD8ID是一款MODSEMI推出的高安全等级加密芯片,真正做到了软硬件P2P兼容ATECC608系列,也就是说不需要改变主机端原有的Cryptolib库,甚至无需更改任何代码和硬件即可…

基于stm32f103c8t6及AS608-----指纹锁项目

一、关于本项目: 本文适合于初学者,大佬还请勿喷,欢迎提出意见,有纰漏之处将及时纠正。在浅学了stmf103c8t6后,想着依据现在所拥有的知识和能力做一个小项目。在了解到有关宿舍指纹锁的相关内容,对该功能的…

【基于STM32F103+AS608的智能打卡系统】

基于STM32F103AS608的智能打卡系统 工程源码链接 链接:https://pan.baidu.com/s/1RRc03nTrcTp--xfQnv2r9Q?pwdin9p 提取码:in9p --来自百度网盘超级会员V5的分享一、功能描述基于STM32F013AS608实行的智能打卡系统 1》进行打卡功能 2》指纹添加&…

as608指令c语言,单片机+AS608的使用,并带程序

之前在AS608的使用上走了许多弯路,这次希望身为初学者的我们可以吸取经验,特此介绍AS608. 指纹模块AS608的使用: 1脚红线:Vcc,连接3.3V电源供电,勿接3.3V以上电源 2脚黄线:接单片机串口TX端 3脚白线:接单片机串口RX端 4脚黑线:GND,3.3V电源的GND 5脚蓝线:模块触摸…