使用可正常工作的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
变量,并且所有变量都包含正确的字符串。有人知道为什么标签没有注册吗? 最佳答案
在绘制SMA之前,必须先绘制蜡烛图和体积。烛形图没有任何带标签的对象,当您调用plt.legend()
时,它会尝试在当前轴上为每个图绘制一个标签。因此,您得到此UserWarning: No labeled objects found. Use label='...' kwarg on indivial plots.
为了解决这个问题,我希望这一点很清楚,只需要您在蜡烛图之前首先绘制SMA的图,然后在生成任何其他图之前立即调用legend()
。
关于python - 找不到标签对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23417393/