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
相关产品推荐
相关产品推荐

