matlab库零散笔记
matlab.pylpot
1. 函数plt.plot()
1.1 基本用法
用于绘制线图和散点图
# 语法格式
# 画单条线
plot([x], y, [fmt], *, data=None, **kwargs)
# 画多条线
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)
- x, y:点或线的节点,x 为 x 轴数据,y 为 y 轴数据,数据可以列表或数组。
- fmt:可选,定义基本格式(如颜色、标记和线条样式)
- fmt = '[marker][line][color]'
- ** kwargs:可选,用在二维平面图上,设置指定属性,如标签,线的宽度等
常用marker如下
| marker | 含义 |
|---|---|
| . | 点 |
| o | 实心圆 |
| * | 星号 |
| x | 乘号 |
| v | 下三角 |
| < | 左三角 |
| > | 右三角 |
| ^ | 上三角 |
常用line如下
| 类型 | 简写 | 说明 |
|---|---|---|
| solid (默认) | - | 实线 |
| dotted | : | 点虚线 |
| dashed | -- | 破折线 |
| dashdot | -. | 点划线 |
| None | '' 或 ' ' | 不画线 |
标记大小与颜色
- markersize,简写为 ms:定义标记的大小
- markerfacecolor,简写为 mfc:定义标记内部的颜色
- markeredgecolor,简写为 mec:定义标记边框的颜色
# 例子
import matplotlib.pyplot as plt
import numpy as np
ypoints = np.array([6, 2, 13, 10])
plt.plot(ypoints, 'o--b')
# 或者 plt.plot(ypoints,marker='o',\
# linestyle='--',mfc='b',ms=5)
plt.show()

# 例子,加上x轴、y轴标签以及标题
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])
plt.plot(x, y, 'o:b')
plt.title("TEST TITLE")
plt.xlabel("x - label")
plt.ylabel("y - label")
plt.show()

1.2 绘制多图
2. 属性设置 xlim,ylim
xlim 和 ylim 在 matplotlib 中分别用于获取或设置x轴和y轴的范围
用法 (xmin 和 xmax 分别是x轴的最小值和最大值)
- 获取当前x轴的范围:
xmin, xmax = plt.xlim() - 设置x轴的范围:
plt.xlim(xmin, xmax)
plt.xlim([xmin, xmax])
# 例子(放大图像中的特定领域)
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
# 设置x轴和y轴的范围
plt.xlim(2, 8)
plt.ylim(-1, 1)
plt.show()

# 例子(同步两个的子图的坐标轴范围)
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
fig, axs = plt.subplots(2, 1)
axs[0].plot(x, y1, 'y')
axs[1].plot(x, y2, 'b')
# 设置两个子图的x轴范围相同
axs[0].set_xlim(2, 8)
axs[1].set_xlim(2, 8)
plt.show()

# 例子(动态调整坐标轴的范围)
x = np.linspace(0, 10, 100)
y = np.sin(x) + np.random.normal(0, 0.2, 100) # 添加随机噪声
plt.plot(x, y, 'o')
# 动态设置y轴范围,使其略大于数据的最大值和最小值
plt.ylim(y.min() - 0.5, y.max() + 0.5)
plt.show()

3. 函数plt.scatter()
用于绘制散点图
用法
plt.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, *, edgecolors=None, plotnonfinite=False, data=None, **kwargs)
-
x,y:长度相同的数组,也就是我们即将绘制散点图的数据点,输入数据。
-
s:点的大小,默认 20,也可以是个数组,数组每个参数为对应点的大小。
-
c:点的颜色,默认蓝色 'b',也可以是个 RGB 或 RGBA 二维行数组。
-
marker:点的样式,默认小圆圈 'o'。
-
cmap:Colormap,默认 None,标量或者是一个 colormap 的名字,只有 c 是一个浮点数数组的时才使用。如果没有申明就是 image.cmap。
-
norm:Normalize,默认 None,数据亮度在 0-1 之间,只有 c 是一个浮点数的数组的时才使用。
-
vmin,vmax::亮度设置,在 norm 参数存在时会忽略。
-
alpha::透明度设置,0-1 之间,默认 None,即不透明。
-
linewidths::标记点的长度。
-
edgecolors::颜色或颜色序列,默认为 'face',可选值有 'face', 'none', None。
-
plotnonfinite::布尔值,设置是否使用非限定的 c ( inf, -inf 或 nan) 绘制点。
-
**kwargs::其他参数
# 例子
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])
colors = np.array(["red", "green", "black", "orange", "purple", "beige", "cyan", "magenta"])
sizes = np.array([20, 50, 100, 200, 500, 1000, 60, 90])
plt.scatter(x, y, c=colors, s=sizes)
plt.show()


浙公网安备 33010602011771号