标签对象未找到

时间:2014-05-01 22:01:01

标签: python matplotlib charts

使用正常工作的matplotlib设置图表(见下图),但当我尝试添加图例时,我收到以下错误:UserWarning: No labeled objects found. Use label='...' kwarg on indivial plots.

这是我用来在图例中定义我想要的线条并绘制图例的代码:

#Moving average labels
smaLabel1 = str(SMA1)+'d SMA'
smaLabel2 = str(SMA2)+'d SMA'
smaLabel3 = str(SMA3)+'d SMA'

#Add SMAs to chart
ax1.plot(ind, avg1, '#5998ff', label=smaLabel1, linewidth=1)
ax1.plot(ind, avg2, '#ffbb82', label=smaLabel2, linewidth=1)
ax1.plot(ind, avg3, '#d689c4', label=smaLabel3, linewidth=1)
""" End SMA additions """

#Add legend
plt.legend()

我检查了smaLabel个变量,并且都保存了正确的字符串。有人知道标签没有注册的原因吗?

enter image description here

1 个答案:

答案 0 :(得分:9)

在绘制SMA之前,您必须绘制蜡烛图和体积图。蜡烛图没有任何标记对象,当您调用plt.legend()时,它会尝试为当前轴上的每个图绘制标签。因此,您得到此UserWarning: No labeled objects found. Use label='...' kwarg on indivial plots.

为了解决这个问题,我希望在这一点上很清楚,只需要你在蜡烛图之前首先绘制SMA,然后在任何其他图之前调用legend()。正在生成。