Python Matplotlib 实现基础绘图

Python的matplotlib实现数据分析绘图_代码解释 通过这些语法,可以用清晰的逻辑绘制统计图表。 阅读详情

​

1、Matplotlib 的三层结构

Matplotlib 是一个用于在 Python 中创建二维图表的库。为了更好地理解和使用 Matplotlib,重要的是要了解其三层结构:容器层(Container Layer)、辅助显示层(Helper Layer)和图像层(Artist Layer)。这些层级构成了 Matplotlib 的绘图体系结构。

1)容器层(Container Layer)

组件

描述

FigureCanvas

最底层的容器,

代表了绘图的整个窗口或页面。

它是一个用于绘制

和渲染所有图表元素的物理或概念性的画布。

Figure

代表了绘图窗口的顶层容器。

一个 Figure 可以包含多个 Axes 对象。

Axes

是一个包含图表大部分元素的容器,

如线条、标记、文字、标签等,

通常与“坐标轴”相关联。

一个 Axes 对象代表了图表的一个绘图区域。

2) 辅助显示层(Helper Layer)

辅助显示层是对容器层的补充,提供了一系列方便的方法来创建常见的图表(如直方图、折线图等),并处理诸如刻度定位、布局和颜色映射等常见情况。

组件

描述

pyplot 模块

是 Matplotlib 的辅助显示层,

提供了一组命令式函数来快速生成简单图表。

例如,plt.plot()、plt.xlabel()、plt.ylabel()等。

Axis 和 Tick 对象

Axis 对象处理刻度线、网格线、标签等,

而 Tick 对象是 Axis 的组件,

用于处理刻度线和刻度标签。

3)图像层(Artist Layer)

图像层是 Matplotlib 的核心层,包含了用于绘制图表的所有对象(称为艺术家对象,或简称“艺术家”)。

组件

描述

Artist

包括 Text(文本),Line2D(线条)

,Rectangle(矩形,用于绘制柱状图)、AxesImage(图像)等。

这些对象知道如何使用渲染器在画布上绘制自己。

Renderer

负责在 FigureCanvas 上绘制 Artist。

用户通常不直接与渲染器交互,

而是通过艺术家对象的方法间接进行。

2、使用画布(Figure)

Matplotlib 中,画布是指整个图形界面或图形的总体背景,通常在绘图之前设置。在 Matplotlib 中,画布由 Figure 对象表示。可以通过调整 Figure 对象的属性来自定义画布的大小、分辨率和边框等。plt.figure() 函数用于创建新的图形窗口,并提供了许多用于自定义这些图形窗口的参数。常用参数如下,

参数

描述

figsize

图形的大小,以英寸为单位,

传递一个元组(宽度,高度)。

dpi

图形的分辨率,

以每英寸点数(dots per inch)表示。

facecolor

图形的背景颜色。

edgecolor

图形边框的颜色。

frameon

布尔值,用于控制是否绘制图形边框。

num

图形的编号或名称。如果编号已存在,

则使用已存在的图形。

tight_layout

布尔值或字典。如果为 True,

则使用 tight layout 调整子图布局以适应图形区域。

使用示例:Python Matplotlib 实现基础绘图-CJavaPy

3、绘制折线图

折线图是最基本的图表类型,通常用于显示随时间变化的数据。plt.plot() 函数是用于创建线图的基本工具。常用参数如下,

参数

描述

x

线图中点的 x 坐标。

y

线图中点的 y 坐标。

color

线条的颜色,可为颜色代码或颜色名称。

linestyle

线条的样式,例如 ‘-’, ‘–’, ‘-.’, ‘:’ 等。

linewidth

线条的宽度。

marker

数据点的标记样式,例如 ‘o’, ‘*’, ‘+’ 等。

markersize

标记的大小。

label

用于图例的标签。

alpha

线条的透明度,范围 0(透明)至 1(不透明)。

使用示例:

import matplotlib.pyplot as plt

# 示例数据
x = range(1, 6)
y = [1, 4, 6, 8, 4]

# 创建线图
plt.plot(x, y, color='green', linestyle='--', linewidth=2, marker='o', markersize=10, label='Data Line', alpha=0.7)

# 添加图例
plt.legend()

# 添加标题和轴标签
plt.title('Line Plot Example')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')

# 显示图表
plt.show()

4、 绘制散点图

散点图通常用于显示两个变量之间的关系。plt.scatter() 函数用于创建散点图,是数据可视化中常用的一个工具。常用参数如下,

参数

描述

x

散点的 x 坐标。

y

散点的 y 坐标。

s

散点的大小,可以是单个数值或与数据点数量相等的数组。

c

散点的颜色,可以是单个颜色格式的字符串或一系列颜色。

marker

标记的样式,默认为 ‘o’。

alpha

散点的透明度,介于 0(完全透明)和 1(完全不透明)之间。

linewidths

标记边缘的线宽。

edgecolors

标记边缘的颜色。

label

用于图例的标签。

使用示例:

import matplotlib.pyplot as plt

# 示例数据
x = [5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6]
y = [99, 86, 87, 88, 100, 86, 103, 87, 94, 78, 77, 85, 86]
sizes = [210, 410, 312, 214, 415, 312, 213, 210, 410, 312, 214, 415, 312]
colors = ['red', 'green', 'blue', 'yellow', 'pink', 'black', 'orange', 'purple', 'beige', 'brown', 'gray', 'cyan', 'magenta']

# 创建散点图
plt.scatter(x, y, s=sizes, c=colors, marker='o', alpha=0.5, linewidths=2, edgecolors='w', label='Data Points')

# 添加图例
plt.legend()

# 添加标题和轴标签
plt.title('Custom Scatter Plot')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')

# 显示图表
plt.show()

5、 绘制条形图

条形图用于比较不同类别的数据。Matplotlib 库中,plt.bar() 函数是用于创建条形图的常用函数。

常用参数如下,

参数

描述

x

条形的 x 坐标。

height

条形的高度。

width

条形的宽度,默认值为 0.8。

bottom

条形的起始位置 y 坐标,默认为 None。

align

条形的对齐方式,‘center’ 或 ‘edge’,

默认为 ‘center’。

color

条形的颜色。

edgecolor

条形边缘的颜色。

linewidth

条形边缘的线宽。

tick_label

用作条形标签的标签序列。

label

用于为条形图添加图例的标签。

使用示例:

import matplotlib.pyplot as plt

# 示例数据
categories = ['Category A', 'Category B', 'Category C', 'Category D']
values = [10, 15, 7, 12]

# 创建条形图
plt.bar(x=categories,          # x 坐标
        height=values,         # 条形的高度
        width=0.6,             # 条形的宽度
        bottom=0,              # 条形的起始位置 y 坐标
        align='center',        # 条形的对齐方式
        color='blue',          # 条形的颜色
        edgecolor='black',     # 条形边缘的颜色
        linewidth=1,           # 条形边缘的线宽
        tick_label=categories, # 条形标签
        label='Value')         # 图例标签

# 添加 x 轴和 y 轴标签
plt.xlabel('Categories')
plt.ylabel('Values')

# 添加图表标题
plt.title('Bar Chart Example')

# 显示图例
plt.legend()

# 显示图表
plt.show()

6、添加额外元素

可以添加更多元素来改进图表,例如图例、网格线和不同的样式。

import matplotlib.pyplot as plt
import numpy as np

# 准备数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 绘制基础图形
plt.figure(figsize=(10, 6))
plt.plot(x, y, label='sin(x)')

# 添加标题和标签
plt.title("Simple Plot of sin(x)")  # 添加标题
plt.xlabel("x")  # x轴标签
plt.ylabel("sin(x)")  # y轴标签

# 添加图例
plt.legend()

# 添加网格
plt.grid(True)

# 添加注释
plt.annotate('Local Max', xy=(1.57, 1), xytext=(2, 1.5),
             arrowprops=dict(facecolor='black', shrink=0.05))
             
# 使用 plt.draw() 显示画布
plt.draw()
# 显示图形
plt.show()

7、保存图形

Matplotlib 中,保存图形到文件是一个简单的过程。可以使用 savefig() 方法来保存图形。常用参数如下,

参数

描述

fname

输出文件的名称。字符串、类路径对象或类二进制对象。必备参数。

format

输出格式。字符串,

支持的格式为eps, jpeg, jpg, pdf, pgf, png, ps, raw, rgba, svg, svgz, tif, tiff。

默认值为None。

dpi

输出图像的分辨率(每英寸的像素点数)。

浮点数或’figure’,如果值为’figure’,输出使用图形的分辨率,

默认值为rcParams[“savefig.dpi”](默认为’figure’)。

quality

jpg文件输出的质量,仅对’jpg’或’jpeg’文件生效。整数,

建议取值范围为[1-95],值超过100将会禁用jpeg压缩算法,

可能会导致文件过大。默认值为rcParams[“savefig.jpeg_quality”]

(默认值为95)。

facecolor

图像的背景色。颜色值或’auto’,值为’auto’时,

使用当前图形的背景色。

默认值为rcParams[“savefig.facecolor”](即’auto’)。

edgecolor

图像边缘颜色。颜色值或’auto’,

值为’auto’时,使用当前图形边缘颜色。

默认值为rcParams[“savefig.edgecolor”](即’auto’)。

orientation

postscript后端参数。

取值范围为{‘landscape’, ‘portrait’}。

默认值为’portrait’。

papertype

纸张大小,仅支持postscript输出。

取值范围为{‘letter’, ‘legal’, ‘executive’, ‘ledger’, ‘a0’ - ‘a10’, ‘b0’ - ‘b10’}。

默认值为None。

backend

使用非默认后端渲染文件。字符串。

可选参数。默认值为None。

metadata

用于存储图像元数据的键值对。

字典,取值依赖于输出图像格式和后端。

可选参数。默认值为None。

pil_kwargs

保存图像是传递给PIL.Image.Image.save的参数。

字典。可选参数。

---------------------------END---------------------------

题外话

感谢你能看到最后,给大家准备了一些福利!

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。


👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img

二、Python兼职渠道推荐*

学的同时助你创收,每天花1-2小时兼职,轻松稿定生活费.
在这里插入图片描述

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

Python中Matplotlib实现简单的绘图 Python中Matplotlib实现简单的绘图 1.实现简单的色彩条 2.实现简单的 Axisline4(sin图像) 3.实现简单的轴线图 阅读详情

相关推荐

python之matplotlib实现绘图和可视化

绘图是数据分析工作中最重要的任务之一,是探索过程的一部分。python为我们提供了许多可视化工具,最常用的的是matplotlib。matplotlib是一种用于创建出版质量图标的桌面绘图包(主要是2D方面),它为python构建了一个MATLAB式的绘图接口。它不仅支持各种操作系统上许多不同的GUI后端,而且还能将图片导出为各种常见的矢量和光栅图:PDF、SVG、JPG、PNG、BMP、GIF等...

LZH_12345的博客 2010

python中matplotlib图层优先级

python中使用matplotlib进行图像绘制是常见的使用方式,在同一图纸需要绘制多个图形或者曲线时,可能会出现图像之间的遮挡情况,为了解决这个问题,需要进行图层优先级的设置。

A1358722560的博客 1969

AXI VIP配置全指南:从报错到成功仿真的完整流程(Vivado 2023版)

本文详细解析了在Vivado 2023环境中配置AXI Verification IP(VIP)进行协议仿真的完整流程。针对常见的include和import报错问题,提供了具体的解决方案和代码示例,指导用户从IP核创建、参数化配置,到构建可工作的仿真测试平台,最终实现成功仿真。

gpt4scribbler的博客 233

【Python学习记录】matplotlib绘图基本配置

matplotlib是python中绘图的一个库,它的数据可视化的功能十分强大,在机器学习中用的非常普遍,本文就对matplotlib绘图的基本配置作一个系统介绍。

xiao2macf的专栏 2420

OpenCv案例(七): 基于OpenCvSharp计算图像的清晰度(自动对焦)

自动对焦,其实是对相机成像的清晰值得计算,若对焦不清晰,成像的清晰度低,视觉效果模糊。若是在工业检测行业,对焦不准确,可能会造成严重后果;对焦准确的图像,其清晰度高,对比度鲜明,层次明显。

qq_37835727的博客 7114

【XR硬件介绍】PICO Space Pro(Project Swan)深度解析:字节 2026 旗舰 MR 头显延期背后

内部代号 Project Swan 的 PICO 年度旗舰 MR 头显正式定名PICO Space Pro,原本计划 2026 年 9 月对外发布,官方官宣推迟至 2026 年第四季度上市。硬件层面已经完成 FCC 认证,硬件成熟度较高,延期核心目标是打磨 PICO OS 6 空间操作系统,补齐空间计算软件能力。本文从产品背景、硬件架构、软件生态、延期逻辑、行业竞争格局几个维度拆解这款国产高端 MR 设备,分析它对国内 XR 产业的意义与待解的问题。

houdou112358的博客 1226

Python解决matplotlib包画图点和线图层关系

函数的调用顺序,发现不能改变,即使先画线,后画点,显示出来仍然是点在线的下方。3、解决方案:通过参数。

qq_33755944的博客 719

StarWind V2V Converter v9 虚拟磁盘转换工具使用教程 (转)

StarWind V2V Converter v9.0.1.268 是一款免费的虚拟磁盘转换工具,支持不同管理程序间的虚拟机镜像格式转换,包括VMDK、VHD/VHDX、IMG和QCOW2等格式。该工具具有窗口修复模式、零拷贝转换和管理程序切换等特色功能,能够轻松实现物理机到虚拟机的转换,并兼容主流管理程序如Hyper-V、ESXi等。使用教程详细介绍了从本地文件选择到格式转换的完整操作流程,转换过程简单高效且不影响原虚拟磁盘数据。

hsh的专栏 1482

python可视化分析(matplotlib、seaborn、ggplot2)

python可视化分析总结(matplotlib、seaborn、ggplot)一、matplotlib库1、基本绘图命令3、图形参数设置4、特殊统计图的绘制4.1 数学函数图4.2 气泡图4.1 三维曲面图二、seaborn库1、常用统计图1.1 箱线图1.2 小提琴图1.3 点图1.4 条图与计数图1.5 分组图1.6 概率分布图2、联合图3、配对图三、ggplot库1、图层画法+常用图形2、快速绘图 一、matplotlib库 1、基本绘图命令 import matplotlib.pyplot as

feifei2233的博客 1万+

利用GAT(图论分析工具箱)构建并分析大脑结构协变网络学习笔记

前言 前面我学习了利用DTI构建白质纤维脑网络,并采用GRETNA计算了小世界网络属性。阅读文献发现可以利用灰质体积或皮层指标(皮层厚度、折叠指数、沟深)等构建结构协变网络再进行网络拓扑属性的计算。因此,我采用前面提取的灰质体积和皮质数据进行了结构协变网络分析,特此写下笔记以便后面的学习。 一、数据准备 二、构建结构协变网络 三、全局属性的统计分析 四、局部属性的统计分析 五、网络攻击分析 六、度的分布 ..................

weixin_52073820的博客 7496

华为ensp、思科eve、华为ensp pro中通过cloud桥接本地网络和联通互联网的方法

华为ensp、思科eve中通过cloud桥接本地网络和联通互联网的方法

suofen9703的博客 417

Matplotlib 默认图层 示例代码

处理文本方向else:# 获取文本路径# 旋转和平移# 创建PathPatch# 转换到3D坐标封装了一个在3D坐标系中绘制文本的函数text3d()。

m0_51260181的博客 285

21、博弈中的对抗搜索算法解析

本文深入解析了博弈中的对抗搜索算法,涵盖极小极大算法、阿尔法-贝塔剪枝、移动排序与换位表等核心技术。文章分析了算法的数学基础与实现机制,探讨了其在国际象棋、围棋等复杂游戏中的应用,并扩展至多人游戏中的联盟与合作行为。通过对比不同类型策略的优劣,展示了对抗搜索在实际博弈系统中的演进方向与优化路径,为人工智能决策提供了理论支持与实践指导。

rust6ferris的博客 128

python创意绘图代码_python+matplotlib实现动态绘制图片实例代码(交互式绘图)

本文研究的主要是python+matplotlib实现动态绘制图片(交互式绘图)的相关内容,具体介绍和实现代码如下所示。最近在研究动态障碍物避障算法,在Python语言进行算法仿真时需要实时显示障碍物和运动物的当前位置和轨迹,利用Anaconda的Python打包集合,在Spyder中使用Python3.5语言和matplotlib实现路径的动态显示和交互式绘图(和Matlab功能类似)。Anac...

weixin_32327999的博客 929

YOLOv11+BiFPN双向特征金字塔:全方位解析多尺度检测性能优化指南

飞书链接:https://ecn6838atsup.feishu.cn/wiki/EhRtwBe1CiqlSEkHGUwc5AP9nQe?购买即可解锁800+YOLO优化文章,并且还有海量深度学习复现项目,价格仅需两杯奶茶的钱,每日更新。函数中添加BiFPN的解析逻辑(找到。链接可用,不要多复制空格了。密码:946m22&8。

FJN110的博客 306

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

python如何调用matplotlib绘图_Python使用matplotlib实现基础绘图功能示例

本文实例讲述了Python使用matplotlib实现基础绘图功能。分享给大家供大家参考,具体如下:一个简单的例子# -*- coding:utf-8 -*-#!python3import numpy as npimport matplotlib.pyplot as pltx = np.linspace(0,10,101) #设置起始及终点,以及点的数量y = np.sin(x) ...

weixin_39562338的博客 445

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

python怎么导入背景_如何在 Matplotlib 中更改绘图背景的实现

介绍Matplotlib是Python中使用最广泛的数据可视化库之一。无论是简单还是复杂的可视化项目,它都是大多数人的首选库。在本教程中,我们将研究如何在Matplotlib中更改绘图的背景。导入数据和库让我们首先导入所需的库。显然,我们将需要Matplotlib,并且将使用Pandas读取数据:import matplotlib.pyplot as pltimport pandas as pd具...

weixin_35906794的博客 815

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

python的plot如何实时更新_基于Python实现matplotlib中动态更新图片(交互式绘图)

最近在研究动态障碍物避障算法,在Python语言进行算法仿真时需要实时显示障碍物和运动物的当前位置和轨迹,利用Anaconda的Python打包集合,在Spyder中使用Python3.5语言和matplotlib实现路径的动态显示和交互式绘图(和Matlab功能类似)。Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理...

weixin_39759182的博客 1026

python matlabplot animate 刷新_基于Python实现matplotlib中动态更新图片(交互式绘图)

最近在研究动态障碍物避障算法,在Python语言进行算法仿真时需要实时显示障碍物和运动物的当前位置和轨迹,利用Anaconda的Python打包集合,在Spyder中使用Python3.5语言和matplotlib实现路径的动态显示和交互式绘图(和Matlab功能类似)。Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理...

weixin_39800990的博客 144

python动态更新窗口上的图片_基于Python实现matplotlib中动态更新图片(交互式绘图)...

最近在研究动态障碍物避障算法,在Python语言进行算法仿真时需要实时显示障碍物和运动物的当前位置和轨迹,利用Anaconda的Python打包集合,在Spyder中使用Python3.5语言和matplotlib实现路径的动态显示和交互式绘图(和Matlab功能类似)。Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理...

weixin_39530557的博客 169

Python绘图实战:从基础四边形到Turtle、Pillow、Matplotlib多库实现

计算机图形学的基础在于对基本几何图形的绘制与操控,其中四边形作为构成复杂界面的核心元素,其绘制原理涉及坐标系、顶点定义与样式渲染等关键技术。在Python生态中,多个图形库为此提供了不同层级的解决方案:Turtle库通过模拟海龟移动实现过程式绘图,适合初学者理解图形生成逻辑;Pillow(PIL)库提供基于像素的静态图像绘制,适用于图片合成与处理;Matplotlib则依托强大的补丁(Patch)系统,支持矢量图形绘制并完美集成到数据可视化中。掌握这些库的API设计,不仅能实现四边形等基础图形的绘制,更能为

weixin_33423874的博客 290

Python图形编程实战:用Matplotlib与Pillow实现高精度矢量绘图

矢量图形是计算机图形学的基础概念,它通过数学公式定义点、线、曲线和形状,具有无限缩放不失真的特性。其核心原理在于使用贝塞尔曲线等参数方程描述轮廓,通过路径(Path)和填充(Patch)进行渲染。这项技术的价值在于为Logo设计、UI图标和数据可视化提供了精确、可编程的图形生成方案。在工程实践中,开发者常结合Matplotlib的Path对象进行矢量轮廓构建,并利用Pillow进行图层合成与输出优化,从而实现从算法到像素的完整控制。本文以趣味项目为载体,深入演示了如何通过坐标计算、曲线控制和分层绘制技术,完

weixin_34302798的博客 331

怎样用python绘制动图_python+matplotlib实现动态绘制图片实例代码(交互式绘图)...

本文研究的主要是python+matplotlib实现动态绘制图片(交互式绘图)的相关内容,具体介绍和实现代码如下所示。最近在研究动态障碍物避障算法,在Python语言进行算法仿真时需要实时显示障碍物和运动物的当前位置和轨迹,利用Anaconda的Python打包集合,在Spyder中使用Python3.5语言和matplotlib实现路径的动态显示和交互式绘图(和Matlab功能类似)。Anac...

weixin_39558754的博客 235

python绘制qq图_python+matplotlib实现动态绘制图片实例代码(交互式绘图)

本文研究的主要是python+matplotlib实现动态绘制图片(交互式绘图)的相关内容,具体介绍和实现代码如下所示。最近在研究动态障碍物避障算法,在Python语言进行算法仿真时需要实时显示障碍物和运动物的当前位置和轨迹,利用Anaconda的Python打包集合,在Spyder中使用Python3.5语言和matplotlib实现路径的动态显示和交互式绘图(和Matlab功能类似)。Anac...

weixin_39847887的博客 468
上一篇: Django实现下载100G的超大CSV文件
下一篇: 详解Python的数据分析
Python_P叔
博客等级 码龄3年 5451粉丝 827原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值