python - 找不到标签对象

标签 python matplotlib charts

使用正常工作的 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 变量,所有变量都包含正确的字符串。有人知道为什么标签没有注册吗?

enter image description here

最佳答案

在绘制 SMA 之前,您必须绘制蜡烛图和交易量。蜡烛图没有任何标记对象,当您调用 plt.legend() 时,它会尝试为当前轴上的每个图绘制一个标签。因此,您会收到此 UserWarning: No labeled objects found。在个别地 block 上使用 label='...' kwarg。

为了解决这个问题,我希望此时已经很清楚了,只需要您先绘制 SMA,然后再绘制蜡烛图,然后在调用 legend() 之后再调用任何其他函数正在生成图。

关于python - 找不到标签对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23417393/

相关文章:

python - 如何使用 Matplotlib 对 Pandas 数据框中的数据进行分类和绘图?

jquery - 使用 Chart.js 时 $(...).getContext ("2d") 不是函数

javascript - 我可以使用哪种 javascript 或 JQuery 图表工具来创建带有垂直列标签的热图图表?

python - yaxis.set_major_formatter 中的 f 字符串

python - 将函数应用于 DataFrame GroupBy 并返回更少的列

python - 在Python中手动高效地创建图像直方图

python - 查找叉积以查找 MatplotLib 中线上方/下方的点

Android:如何在图表引擎下创建列表?

python - django 以每周每月每天的方式对查询元素进行排序

javascript - 使用 Selenium 检查是否选择了网页上的选项卡