Matplotlib 图例颜色不同于绘图颜色 - 错误或错误?

Matplotlib legend colors differ from plot colors - bug or error?

我用误差线绘制数据并想在图例中标记它们。但是,图例中的颜色与图中的颜色不匹配。

玩具示例:

import matplotlib.pyplot as plt
plt.figure()
plt.plot(np.arange(50),label='data')
plt.errorbar(np.arange(50),np.arange(50),yerr=np.arange(50),label='errors')
plt.legend()

这种行为是错误还是我做错了什么?

谢谢!

我正在使用 python 2.7 和 jupyter lab

plot 有一行,errorbar 有一行。一个隐藏另一个。

您可以将误差条的 linestyle 设置为 "None"

import numpy as np
import matplotlib.pyplot as plt

plt.figure()
plt.plot(np.arange(50),label='data')
plt.errorbar(np.arange(50),np.arange(50),yerr=np.arange(50),ls="None",
             label='errors')
plt.legend()

plt.show()

您也可以将情节的zorder设置为更大的数字,让它出现在前面。

您可能还认为 plt.errorbar() 有两个颜色参数:

import numpy as np
import matplotlib.pyplot as plt
plt.figure()
plt.plot(np.arange(50),color='blue',label='data')
plt.errorbar(np.arange(0,50,2),np.arange(0,50,2),yerr=np.arange(0,50,2),color='blue',ecolor='red',label='errors')
plt.legend()
plt.show()