我有一个Python脚本,它绘制了一个带有相应色块图例的电子乐队结构,如图所示here.它在我的机器上工作正常,但当我的同事试图在他的机器上运行脚本时输入文件,matplotlib正确绘制了波段结构但无法创建图例。他尝试在Python 2和3中运行并收到相同的错误:/usr/lib/pymodules/python2.7/matplotlib/axes.py:4747:UserWarning:找不到标记的对象。使用label =' ...'在个别情节上的kwarg。
由于我们使用相同的输入文件/代码,因此我不知道它为什么在一台机器上工作而在另一台机器上工作。知道可能导致此问题的原因以及如何解决这个问题?非常感谢。
以下是应该创建图例的代码部分。
r_patch = mpatches.Patch(color='r', label='dxy')
b_patch = mpatches.Patch(color='b', label='dyz')
y_patch = mpatches.Patch(color='y', label='dz2')
g_patch = mpatches.Patch(color='g', label='dxz')
m_patch = mpatches.Patch(color='m', label='dx2-y2')
plt.legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3, ncol=5, mode="expand", borderaxespad=0., handles=[r_patch, b_patch, y_patch,g_patch, m_patch])
答案 0 :(得分:-1)
我有同样的错误。 与matplotlib版本有关的东西。
见下页: Matplotlib Legend Guide basic examples
您可以尝试下一次更改吗?:
r_patch = mpatches.Patch(color='r')
b_patch = mpatches.Patch(color='b')
y_patch = mpatches.Patch(color='y')
g_patch = mpatches.Patch(color='g')
m_patch = mpatches.Patch(color='m')
plt.legend([r_patch, b_patch, y_patch,g_patch, m_patch],
['dxy','dyz','dz2','dzx','dx2-y2'],
bbox_to_anchor=(0., 1.02, 1., .102), loc=3, ncol=5, mode="expand", borderaxespad=0.)