作用:
Matplotlib是一个基于Python的绘图库,它提供了一套和MATLAB相似的命令API, 广泛应用于科学计算、数据分析、机器学习等领域,便于用户快速上手。
我们使用Matplotlib库时,更多的使用的是Matplotlib库下的pyplot模块, pyplot 模块包含了大量的绘图函数,这些函数能够快速地创建各种类型的图表,包括线图、 散点图、条形图、饼图等,并且Matplotlib库在绘制图像时,可以很好的与Numpy 库进行结合使用。 注意:在实际使用的过程中,通常将matplotlib.pyplot缩写为plt。
安装
Matplotlib库是一个第三方库,因此在使用时需要我们提前安装,安装的命令是在Anoconda Prompt命令行中输入
pip install matplotlib
conda install matplotlib
使用
在Pycharm中设置Python解释器,把Matplotlib装入
测试使用
以下代码为基础的正弦图像,新建.py文件
import numpy as np
import matplotlib.pyplot as plt
# 计算曲线上的点的x和y坐标
x = np.arange(0, 3 * np.pi, 0.1)
# 表示从 0 到 3π(约9.4248)之间以 0.1 为步长的数值序列;np.pi 是 NumPy 库中定义的一个常量,表示圆周率 π 的值
y = np.sin(x)
# 使用Matplotlib绘制点,并添加fmt和kwargs属性
# plt.plot(x, y, format_string, **kwargs)
"""
format_string:是一个可选的格式化字符串,用于指定线条的颜色、样式和标记点的形状。
'r' 表示红色线条。
'--' 表示虚线。
'o' 表示圆圈标记。
'r--' 表示红色虚线。
'bo' 表示蓝色圆圈标记。
**kwargs:是关键字参数,用于进一步定制图形的外观
label:图例标签。
linewidth 或 lw:线条宽度。
markersize 或 ms:标记点大小。
alpha:透明度(0 到 1)
"""
plt.plot(x, y, '-', #用于绘制二维图形,如折线图、散点图等。
label='Sine Wave', # 图例标签
linewidth=2, # 线宽
color='blue', # 线的颜色
marker='o', # 标记样式
markersize=5, # 标记的大小
markeredgecolor='black', # 标记边缘的颜色
markeredgewidth=1, # 标记边缘的宽度
markerfacecolor='none', # 标记内部的颜色
alpha=0.5 # 透明度
)
# 显示图例
plt.legend()
# 显示图形
plt.show()
测试结果
如果出现AttributeError: 'FigureCanvasInterAgg' object has no attribute 'tostring_rgb'. Did you mean: 'tostring_argb'?
这个其实是matplotlib 与 PyCharm 中的特定 matplotlib backend 不兼容引起的
解决办法
在Pycharm---文件---设置----工具----Python Scientific中,取消工具窗口显示绘图的选项
散点图
在Matplotlib库中,使用scatter来绘制散点图,函数原型为:
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None, **kwargs)
-
x , y : 数组或标量,代表散点图中每个点的 x 和 y 坐标。
-
s : 散点的大小。可以是一个标量或数组,用于指定每个点的大小。
-
c : 散点的颜色。可以是单个颜色,也可以是数组,为每个点指定颜色。如果提供 了 cmap 参数,则 c 可以是颜色映射的值。
-
marker : 散点的标记样式,例如 'o' 表示圆圈, 's' 表示正方形。
-
cmap : Colormap,用于将 c 中的数值映射到颜色。
-
norm : 用于标准化 c 的颜色数据的 Normalize 对象,确保数据在指定的范围内 映射到颜色映射。
-
vmin , vmax : 分别是 c 中数据的最小值和最大值,用于色彩映射。
-
alpha : 透明度,范围从 0(完全透明)到 1(完全不透明)。
-
linewidths : 散点边缘的线宽。
-
edgecolors : 散点边缘的颜色。
import numpy as np
import matplotlib.pyplot as plt
# 计算正弦曲线上的点的x和y坐标
x = np.arange(0, 3 * np.pi, 0.1)
y = np.sin(x)
# 创建一个颜色数组,基于y值映射到颜色
colors = y
# 绘制散点图,添加所有属性
plt.scatter(x, y,
s=10, # 散点的大小
c=colors, # 散点的颜色,这里使用y值映射颜色
marker='o', # 散点的标记样式
cmap='viridis', # 颜色映射
norm=None, # 默认的标准化
vmin=-1, # 颜色映射的最小值
vmax=1, # 颜色映射的最大值
alpha=0.5, # 透明度
linewidths=0.5, # 散点边缘的线宽
edgecolors='w' # 散点边缘的颜色
)
# 添加颜色条
plt.colorbar()
# 显示图形
plt.show()
常用函数plot()
matplotlib是 Python 中一个强大的绘图库,plot 函数是 matplotlib.pyplot 模块中最常用的函数之一,用于绘制折线图。下面从基本用法、参数详解、示例代码等方面详细介绍 plot 函数。
基本用法
plot函数可以接受多种形式的参数,以下是几种常见的调用方式:
import matplotlib.pyplot as plt
# 方式一:只传入 y 值,x 值默认为 [0, 1, 2, ..., len(y)-1]
y = [1, 3, 2, 4]
plt.plot(y)
# 方式二:传入 x 和 y 值
x = [1, 2, 3, 4]
y = [1, 3, 2, 4]
plt.plot(x, y)
# 方式三:同时绘制多条线
x1 = [1, 2, 3, 4]
y1 = [1, 3, 2, 4]
x2 = [1, 2, 3, 4]
y2 = [4, 2, 3, 1]
plt.plot(x1, y1, x2, y2)
plt.show()
plot函数完整参数为:
plot(*args, scalex=True, scaley=True, data=None, **kwargs)
位置参数 *args:
可以传入一个或多个数组,具体情况如下:
一个数组:表示 y 值,x 值默认为 [0, 1, 2, ..., len(y)-1]。
两个数组:分别表示 x 和 y 值。
多个数组:可以同时绘制多条线,例如 plot(x1, y1, x2, y2, ...)
关键字参数 **kwargs:
用于设置线条的样式、颜色、标记等属性,常见的参数如下:
color 或 c:设置线条的颜色,可以是颜色名称(如 'red')、十六进制颜色码(如 '#FF0000')等。
linestyle 或 ls:设置线条的样式,常见值有 '-'(实线)、'--'(虚线)、'-.'(点划线)、':'(点线)。
linewidth 或 lw:设置线条的宽度,单位为磅。
marker:设置数据点的标记样式,常见值有 'o'(圆形)、's'(正方形)、'^'(三角形)等。
markersize 或 ms:设置标记的大小。
label:设置线条的标签,用于图例显示。
import matplotlib.pyplot as plt
# 准备数据
x = [1, 2, 3, 4, 5]
y1 = [2, 4, 6, 8, 10]
y2 = [1, 3, 5, 7, 9]
# 绘制两条线,并设置不同的样式
plt.plot(x, y1, color='red', linestyle='--', linewidth=2, marker='o', markersize=8, label='Line 1')
plt.plot(x, y2, color='blue', linestyle='-.', linewidth=2, marker='s', markersize=8, label='Line 2')
# 添加标题和坐标轴标签
plt.title('Example Plot')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
# 显示图例
plt.legend()
# 显示网格
plt.grid(True)
# 显示图形
plt.show()
使用 plot 函数绘制了两条线,关键字参数设置了线条的颜色、样式、标记等属性。同时,添加了标题、坐标轴标签、图例和网格,使图形更加美观和易读。