python-未找到打印标签对象。。。为什么?

python-未找到打印标签对象。。。为什么?,python,matplotlib,plot,Python,Matplotlib,Plot,我认为这是一个简单的代码,但我一直收到这个错误消息,我不知道为什么: 用户警告:未找到带标签的对象。使用标签=“…”kwarg on 个别地块。warnings.warn(“未找到带标签的对象。” 我见过其他的解决方案,他们说plt.legend()应该直接出现在plot命令之后……所以我也尝试了这个方法,但没有成功 代码如下: x_multi = [int(k[-3:]) for k in data_all_bands.keys()] colors = ['blue', 'black', 'g

我认为这是一个简单的代码,但我一直收到这个错误消息,我不知道为什么:

用户警告:未找到带标签的对象。使用标签=“…”kwarg on 个别地块。warnings.warn(“未找到带标签的对象。”

我见过其他的解决方案,他们说plt.legend()应该直接出现在plot命令之后……所以我也尝试了这个方法,但没有成功

代码如下:

x_multi = [int(k[-3:]) for k in data_all_bands.keys()]
colors = ['blue', 'black', 'green', 'red']
for i in range(len(list(data_all_bands.values())[0])):
    y_multi = [v[i] for v in data_all_bands.values()]
    plt_multi = axes[0].scatter(x_multi, y_multi, label="channel" , color = colors[i])#, color=colors[i])
    plt.legend()
绘图确实出现,但只是没有标签…在上面的情况下,它应该为每种颜色写入4次通道

编辑:为了复制

data\u all\u bands
是一个字典,如下所示:

2016050 [4.2958281793198241, 3.7025449821599157, 5.1717757645735025, 4.9954723025001719]
2016178 [4.0679016016577032, 2.890807214158575, 4.9627629940324081, 4.8505350289087952]
2016290 [3.6947496139720259, 3.1549071645707891, 4.5131724769284824, 4.4082219917836483]
2016114 [3.6302508875834567, 2.9879816559435759, 4.4887321676347716, 4.4042679859883815]

看起来您正在创建一个具有多个子图的图形,但仅在第一个子图上打印。您还使用了面向对象的API(
axes.scatter
)和pyplot状态机(
plt.legend
)的组合

因此,当您调用
plt.legend
时,它会在您的一个空子地块中查找标签,并给出您看到的警告。一种解决方案是使用
轴[0]为正在打印的子地块创建一个图例。legend()


@DavidG相同错误…这是在用户前面警告:
site packages/matplotlib override/matplotlib/axes/\u axes.py:475
Though您可以创建一个吗?我目前无法复制您的issue@DavidG当然。我编辑了这个问题
for i in range(len(list(data_all_bands.values())[0])):
    y_multi = [v[i] for v in data_all_bands.values()]
    plt_multi = axes[0].scatter(x_multi, y_multi, label="channel" , color = colors[i])#, color=colors[i])
    axes[0].legend()