零基础学Python:Matplotlib用法

article/2025/8/29 5:35:49

在这里插入图片描述

本文目录:

  • 一、初识matplotlib
  • 二、线形图
    • plot()函数用法
  • 三、散点图
    • scatter()函数用法
  • 四、饼状图
    • pie()函数用法
  • 五、直方图
    • hist()函数用法

前言: 📢📢📢
🏅🏅🏅作者简介:是Dream呀,华为云享专家、CSDN原力计划作者、Python领域优质创作者,专注分享Python领域原创系列文章。
🌻🌻🌻热门专栏:【零基础学Python
本课程是针对Python入门&进阶打造的一全套课程,在这里,我将会一 一更新Python基础语法、Python爬虫、Web开发、 Django框架、Flask框架以及人工智能相关知识,帮助你成为Python大神,如果你喜欢的话就抓紧收藏订阅起来吧~💘💘💘
🍋🍋🍋如果对学习没有自制力或者没有一起学习交流的动力,欢迎私信我或者文末添加vx,拉你进群,群内有行业大佬帮大家解答疑问,我们一起学习,群内定期还会有抽奖活动和红包相送嗷,快来进入我们吧~
💕 入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀
💓最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺

数据可视化是指通过图表形式展现数据,揭示数据背后的规律。 Matplotlib是可视化数据的最基本库。
导入Matplotlib 一般语句使用如下:

一、初识matplotlib

import matplotlib.pyplot as plt

使用matplotlib进行做图:

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set(xlim=[0.5, 4.5], ylim=[-2, 8], title='An Example Axes',ylabel='Y-Axis',xlabel='X-Axis')
plt.show()

在这里插入图片描述

二、线形图

线形图简单容易绘制,matplotlib提供plot()函数绘制一系列点,用线将其连起来。

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,np.pi)
y_sin = np.sin(x)
y_cos = np.cos(x)fig = plt.figure()
# add_subplot(221)前面两个参数确定了面板的划分,第三个参数确定表示第几个Axis
ax1 = fig.add_subplot(221)
ax2 = fig.add_subplot(222)
ax3 = fig.add_subplot(224)ax1.plot(x,y_sin)
ax2.plot(x,y_sin,'go--',linewidth=2,markersize=12)
ax3.plot(x,y_cos,color='red',marker='+',linestyle='dashed')  # 颜色,标记,线形
plt.show()

在这里插入图片描述

plot()函数用法

格式:plt.plot(x, y, ls=‘-’, lw=2, label=‘xxx’, color=‘g’ )

  • x: x轴上的值
  • y: y轴上的值
  • ls:线条风格 (linestyle)
  • lw:线条宽度 (linewidth)
  • label:标签文本

注意:对于线条颜色,必须写上color=‘red’,而不是只写color=‘’,不然会报错SyntaxError: positional argument follows keyword argument,意思是参数位置不正确导致的错误,也就是说color=''没有默认的颜色

三、散点图

散点图用于表示多个变量的相关性。Matplotlib提供scatter()函数绘制散点图。
random.rand():这个函数的参数是数组的维度,取值范围是 [0,1)

import matplotlib.pyplot as plt
import numpy as np
N = 50
plt.scatter(np.random.rand(N)*50,np.random.rand(N)*50,c='r',s=50,alpha=0.5)
plt.scatter(np.random.rand(N)*50,np.random.rand(N)*50,c='g',s=50,alpha=0.5)
plt.scatter(np.random.rand(N)*50,np.random.rand(N)*50,c='b',s=50,alpha=0.5)
plt.show()

在这里插入图片描述

scatter()函数用法

matplotlib.pyplot.scatter(x, y, s=20, c='b', marker='o', cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, hold=None, **kwargs)
  • x,y:表示的是shape大小为(n,)的数组,也就是我们即将绘制散点图的数据点,输入数据。

  • s:表示的是大小,是一个标量或者是一个shape大小为(n,)的数组,可选,默认20。

  • c:表示的是色彩或颜色序列,可选,默认蓝色’b’。但是c不应该是一个单一的RGB数字,也不应该是一个RGBA的序列,因为不便区分。c可以是一个RGB或RGBA二维行数组。
    在这里插入图片描述

  • marker:MarkerStyle,表示的是标记的样式,可选,默认’o’。
    在这里插入图片描述

  • cmap:Colormap,标量或者是一个colormap的名字,cmap仅仅当c是一个浮点数数组的时候才使用。如果没有申明就是image.cmap,可选,默认None。

  • norm:Normalize,数据亮度在0-1之间,也是只有c是一个浮点数的数组的时候才使用。如果没有申明,就是默认None。

  • vmin,vmax:标量,当norm存在的时候忽略。用来进行亮度数据的归一化,可选,默认None。

  • alpha:标量,0-1之间,可选,默认None。

  • linewidths:也就是标记点的长度,默认None。

四、饼状图

饼状图是被用于分成若干部分的圆表示部分在整体中所占的比例。Matplotlib中提供pie()函数来绘制饼状图

import matplotlib.pyplot as plt
import numpy as np
labels = ['Mon','Tue','Wed','Thu','Fri','Sat','Sun']
data = np.random.rand(7)*100
print(data)
plt.pie(data,labels=labels,autopct='%1.1f%%')  # labels :(每一块)饼图外侧显示的说明文字
plt.axis('equal')  # 该行代码使饼图长宽相等
plt.legend()  # 添加图例
plt.show()

在这里插入图片描述

pie()函数用法

pie函数的语法和参数含义如下:

pie(x, explode=None, labels=None, colors=None,autopct=None, pctdistance=0.6, shadow=False,labeldistance=1.1, startangle=None,radius=None, counterclock=True, wedgeprops=None,       textprops=None, center=(0, 0), frame=False)

x:指定绘图的数据。
explode:指定饼图某些部分的突出显示,即呈现爆炸式。
labels:为饼图添加标签说明,类似于图例说明。
colors:指定饼图的填充色。
autopct:自动添加百分比显示,可以采用格式化的方法显示。控制饼图内百分比设置,可以使用format字符串或者format function;‘%1.1f’:指小数点后保留一位有效数值
pctdistance:设置百分比标签与圆心的距离。
shadow:是否添加饼图的阴影效果。
labeldistance:设置各扇形标签(图例)与圆心的距离。
startangle:设置饼图的初始摆放角度。 radius:设置饼图的半径大小。
counterclock:是否让饼图按逆时针顺序呈现。
wedgeprops:设置饼图内外边界的属性,如边界线的粗细、颜色等。
textprops:设置饼图中文本的属性,如字体大小、颜色等。
center:指定饼图的中心点位置,默认为原点。
frame:是否要显示饼图背后的图框,如果设置为True的话,需要同时控制图框x轴、y轴的范围和饼图的中心位置。

五、直方图

直方图用于显示每个变量出现的频率,与条形图有些类似。但其含义不同,条形图用于比较类别的值,而直方图用于显示变量的分布。Matplotlib提供hist()函数绘制直方图

import matplotlib.pyplot as plt
import numpy as np
data = [np.random.randint(0,n,n) for n in [3000, 4000, 5000]]
print(data)
labels = ['3K', '4K', '5K']
bins = [0, 100, 500, 500, 5000, 3000, 4000, 5000]
plt.hist(data, bins=8, label=labels)
plt.legend()
plt.show()

在这里插入图片描述

hist()函数用法

hist(x,bins=None,range=None,density=None,weights=None,cumulative=False,bottom=None,
histstype='bar',align='mid',orientation='vertical',rwidth=None,log=False,label=None,
stacked=False,normed=None,*,data=None,**kwargs)

x:表示x轴的数据,可以为单个数组或多个数组的序列
bins:表示矩形条的个数,默认为10
range:表示数据的范围,若没有提供range参数,则数据范围为(x.min(),x.max())
cumulative:表示是否计算累积频数或频率
histtype:表示直方图的类型,支持’bar’,‘barstacked’,‘step’,‘stepfilled’四种取值,其中’bar’为默认值,代表传统的直方图;‘barstacked’代表堆积直方图,’'step’代表未填充的线条直方图;'stepfilled’代表填充的线条直方图
align:表示矩形条边界的对齐方式,可设置为’left’,‘mid’,‘right’默认为’mid’,
orientation:表示矩形条的摆放方式,默认为’vertical’,即垂直方向
rwidth:表示矩形条宽度的百分比,默认为0.若histtype的值为’step’或’stepfilled’,则直接忽略rwidth参数的值
stacked:表示是否将多个矩形条以堆积形式摆放


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

相关文章

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脚蓝线:模块触摸…

STM32+AS608指纹模块

前言:这个串口逻辑有点问题,要是用串口做命令输入端的话要自己改一下串口逻辑,串口只是调试能不能用指纹模块的功能,后期不需要串口发命令所以没怎么写串口的命令逻辑 1.AS608的资料挺全的,就是按照他给的来写命令&…

AS608与单片机握手失败、与上位机通讯失败

简言:本人在使用AS608模块时遇到了握手失败、通讯失败的问题,尝试网上各种方法未果后,换了一个AS608模块,问题解决。 一、与单片机握手失败 检查代码中的波特率是否为9600,再通过上位机将AS608的波特率改为与代码相同…

vue+vantUI实现单选、多选题(上一题、下一题)

vue+vantUI实现单选、多选题(上一题、下一题) <template><div class="exam-online"><div class="table-list2"><div v-for="(item,index) in questionList" :key="index"><div v-if="currentNum===…