You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matplotlib图例未显示对应线条颜色问题咨询

Matplotlib 3.8.3中plt.plot设置颜色后图例无对应颜色的解决办法

你遇到的问题是:使用Matplotlib 3.8.3时,通过plt.plot()的格式字符串(比如"-b"、"-r")同时指定线条样式和颜色,图例无法显示对应线条的颜色,但plt.scatter()功能正常。你的示例代码如下:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 20, 1000)
y1 = np.sin(x)
y2 = np.cos(x)

plt.plot(x, y1, "-b", label="sine")
plt.plot(x, y2, "-r", label="cosine")
plt.legend(loc="upper left")
plt.ylim(-1.5, 2.0)
plt.show()

解决办法

直接拆分线条样式和颜色的指定方式,不要用合并的格式字符串:

方法1:分别指定linestyle和color参数

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 20, 1000)
y1 = np.sin(x)
y2 = np.cos(x)

plt.plot(x, y1, linestyle="-", color="b", label="sine")
plt.plot(x, y2, linestyle="-", color="r", label="cosine")
plt.legend(loc="upper left")
plt.ylim(-1.5, 2.0)
plt.show()

方法2:格式字符串仅定义线条样式,单独设置color

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 20, 1000)
y1 = np.sin(x)
y2 = np.cos(x)

plt.plot(x, y1, "-", color="b", label="sine")
plt.plot(x, y2, "-", color="r", label="cosine")
plt.legend(loc="upper left")
plt.ylim(-1.5, 2.0)
plt.show()

原因说明

Matplotlib 3.8.x版本中,使用合并的格式字符串(如"-b")时,图例条目可能无法正确关联线条的颜色属性,拆分参数后能让图例正确读取颜色信息。

内容的提问来源于stack exchange,提问作者Ellie Williamson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 11:52:07