plt.legend用法
时间: 2024-03-31 20:31:20 浏览: 134
plt.legend()函数是Matplotlib库中用于添加图例的函数图例是用于标识不同数据系列的标签,以便更好地理解图表中的数据。下面是plt.legend()函数的用法:
1. 基本用法:
plt.legend()函数可以在图表中自动添加图例。它会根据已绘制的线条或散点图的标签来生成图例。例如,如果你在绘制线条时指定了label参数,那么这些标签将会显示在图例中。
2. 自定义图例:
你可以通过传递一个包含标签的列表给plt.legend()函数来自定义图例。例如,你可以使用plt.legend(['label1', 'label2', 'label3'])来指定图例中的标签。
3. 位置参数:
plt.legend()函数还可以接受一个loc参数,用于指定图例的位置。常用的位置参数包括:
- 'best':自动选择最佳位置
- 'upper right':右上角
- 'upper left':左上角
- 'lower right':右下角
- 'lower left':左下角
- ...
4. 其他参数:
plt.legend()函数还支持其他一些参数,如设置图例的标题、设置图例的边框、设置图例的背景色等。你可以参考Matplotlib官方文档以获取更多详细信息。
相关问题
import numpy as np import pandas as pd import matplotlib.pyplot as plt import pyhht # 读取csv文件数据 data = pd.read_csv('77.csv', header=None) time = data.iloc[:, 0].values charge = data.iloc[:, 1].values # EMD分解 decomposer = pyhht.EMD(charge) imfs = decomposer.decompose() # 绘制原始序列和分解后的IMF分量 plt.figure(figsize=(10, 6)) plt.plot(time, charge, label='Original') plt.xlabel('Time') plt.ylabel('Charge') plt.legend() plt.show() for i in range(imfs.shape[0]): plt.plot(time, imfs[i], label=f'IMF{i+1}') plt.xlabel('Time') plt.ylabel('Charge') plt.legend() plt.show() residuals = charge - np.sum(imfs, axis=0) plt.plot(time, residuals, label='Residuals') plt.xlabel('Time') plt.ylabel('Charge') plt.legend() plt.show()在上述代码后增写一段代码,使得上述代码中绘制的图片可以显示在一张图中
可以使用 subplots() 方法将多个图像显示在同一个图中。以下是修改后的代码:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import pyhht
# 读取csv文件数据
data = pd.read_csv('77.csv', header=None)
time = data.iloc[:, 0].values
charge = data.iloc[:, 1].values
# EMD分解
decomposer = pyhht.EMD(charge)
imfs = decomposer.decompose()
# 绘制原始序列和分解后的IMF分量
fig, axs = plt.subplots(nrows=imfs.shape[0]+1, ncols=1, figsize=(10, 10))
axs[0].plot(time, charge, label='Original')
axs[0].set_xlabel('Time')
axs[0].set_ylabel('Charge')
axs[0].legend()
for i in range(imfs.shape[0]):
axs[i+1].plot(time, imfs[i], label=f'IMF{i+1}')
axs[i+1].set_xlabel('Time')
axs[i+1].set_ylabel('Charge')
axs[i+1].legend()
plt.tight_layout()
plt.show()
residuals = charge - np.sum(imfs, axis=0)
plt.plot(time, residuals, label='Residuals')
plt.xlabel('Time')
plt.ylabel('Charge')
plt.legend()
plt.show()
```
这样就可以将每个 IMF 和原始信号一起显示在同一个图中。`tight_layout()` 方法可以自动调整子图之间的间距,使它们更紧凑。
plt.legend的用法
`plt.legend()` 是一个用于在 Matplotlib 中添加图例的函数。它接受一些参数来控制图例的位置、标签和样式等。下面是使用 `plt.legend()` 的一些常见用法:
1. 添加默认的图例:如果你在绘制图形时使用了 `label` 参数指定了每个线条或图形的标签,那么只需要调用 `plt.legend()`,就可以自动添加一个默认的图例,其中包含每个标签对应的线条或图形。
```
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [1, 2, 3, 4, 5]
y2 = [1, 4, 9, 16, 25]
plt.plot(x, y1, label='linear')
plt.plot(x, y2, label='quadratic')
plt.legend()
plt.show()
```
2. 设置图例的位置:可以使用 `loc` 参数来设置图例的位置。`loc` 参数可以接受一个字符串或一个整数,表示图例的位置。常见的位置有:'best'、'upper right'、'upper left'、'lower left'、'lower right'、'right'、'center left'、'center right'、'lower center'、'upper center'、'center'。
```
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [1, 2, 3, 4, 5]
y2 = [1, 4, 9, 16, 25]
plt.plot(x, y1, label='linear')
plt.plot(x, y2, label='quadratic')
plt.legend(loc='upper left')
plt.show()
```
3. 设置图例的标题:可以使用 `title` 参数来设置图例的标题。
```
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [1, 2, 3, 4, 5]
y2 = [1, 4, 9, 16, 25]
plt.plot(x, y1, label='linear')
plt.plot(x, y2, label='quadratic')
plt.legend(title='Legend Title')
plt.show()
```
4. 设置图例的样式:可以使用 `fontsize` 参数来设置图例的字体大小,还可以使用 `frameon` 参数来控制图例是否带有边框。
```
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [1, 2, 3, 4, 5]
y2 = [1, 4, 9, 16, 25]
plt.plot(x, y1, label='linear')
plt.plot(x, y2, label='quadratic')
plt.legend(fontsize='large', frameon=True)
plt.show()
```
这些只是 `plt.legend()` 的一些常见用法,还有更多的参数可以控制图例的行数、列数、对齐方式等。更多信息可以参考 Matplotlib 官方文档。
阅读全文