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的参数。字典。可选参数。 |
使用示例:Python Matplotlib 实现基础绘图-CJavaPy
以上就是“Python Matplotlib 实现基础绘图”的全部内容,希望对你有所帮助。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
最后祝大家天天进步!!
上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。