使用正常工作的 matplotlib 设置图表(见下图),但是当我尝试添加图例时出现以下错误:UserWarning:找不到标记对象。在个别地 block 上使用 label='...' kwarg。
这是我用来在图例中定义我想要的线条并绘制图例的代码:
#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。在个别地 block 上使用 label='...' kwarg。
为了解决这个问题,我希望此时已经很清楚了,只需要您先绘制 SMA,然后再绘制蜡烛图,然后在调用 legend()
之后再调用任何其他函数正在生成图。
关于python - 找不到标签对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23417393/