ax.legend()自定义图例颜色
时间: 2024-01-15 12:05:03 浏览: 31
可以通过设置legend对象的属性来自定义图例颜色,例如:
```python
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
# 绘制三条曲线
x = [1, 2, 3]
y1 = [1, 2, 3]
y2 = [2, 3, 4]
y3 = [3, 4, 5]
ax.plot(x, y1, label='Line 1')
ax.plot(x, y2, label='Line 2')
ax.plot(x, y3, label='Line 3')
# 获取legend对象
legend = ax.legend()
# 设置图例项的颜色
legend.get_lines()[0].set_color('red') # 设置Line 1的颜色为红色
legend.get_lines()[1].set_color('green') # 设置Line 2的颜色为绿色
legend.get_lines()[2].set_color('blue') # 设置Line 3的颜色为蓝色
plt.show()
```
运行结果如下:
![image.png](attachment:image.png)
相关问题
python中fig.legend()
在 Python 中,`fig.legend()` 是 Matplotlib 库中的一个函数,用于在图形中添加图例。它可以用于自定义图例的位置、大小和样式等属性,以便更好地展示数据。
该函数通常与 `ax.plot()` 或 `ax.scatter()` 等绘图函数一起使用,用于标识不同数据集的含义。例如:
```python
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
# 绘制两条线
line1, = ax.plot([1, 2, 3], [4, 5, 6], label='Line 1')
line2, = ax.plot([1, 2, 3], [2, 4, 6], label='Line 2')
# 添加图例
ax.legend(loc='upper left')
plt.show()
```
上述代码中,我们先通过 `ax.plot()` 函数绘制了两条线,并给它们分别指定了标签。然后,使用 `ax.legend()` 函数添加图例,并将其位置设置为左上角。最后,调用 `plt.show()` 函数显示图形和图例。
注意:`ax.plot()` 函数返回的是一个包含线条对象的元组,这里使用 `,` 将其解包成两个变量 `line1` 和 `line2`。这是为了后续调用 `ax.legend()` 函数时方便指定标签。
plt.legend所有参数
plt.legend的所有参数包括:
- loc: 图例位置,可取值为'best', 'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'upper center', 'center'。用于指定图例的位置。
- fontsize: 字体大小,用于设置图例文本的字体大小。
- frameon: 是否显示图例边框,如果设置为True,则显示图例边框;如果设置为False,则不显示图例边框。
- ncol: 图例的列的数量,一般为1。用于指定图例的列数。
- title: 为图例添加标题,可用于为图例增加一个标题。
- shadow: 是否为图例边框添加阴影,如果设置为True,则为图例边框添加阴影;如果设置为False,则不添加阴影。
- markerfirst: True表示图例标签在句柄右侧,False表示图例标签在句柄左侧。
- markerscale: 图例标记的大小,相对于原始标记的倍数。
- numpoints: 图例句柄上的标记点的个数,一般设置为1。
- fancybox: 是否将图例框的边角设为圆形,如果设置为True,则边角为圆形;如果设置为False,则边角为直角。
- framealpha: 控制图例框的透明度,取值范围为0到1之间。
- borderpad: 图例框的内边距,用于控制图例文本与边框之间的距离。
- labelspacing: 图例中条目之间的距离,用于控制图例中每个条目之间的垂直距离。
- handlelength: 图例句柄的长度,用于控制图例句柄的长度。
- bbox_to_anchor: 图例的位置,如果要自定义图例位置或将图例放置在坐标外边,可以使用该参数配合ax.get_position()和set_position([box.x0, box.y0, box.width*0.8, box.height])使用。
以上是plt.legend的所有参数,您可以根据需要选择适当的参数来设置图例。