Matplotlib在一台机器上绘制图例,而在另一台机器上绘制图例

时间:2016-02-23 22:10:28

标签: python matplotlib

我有一个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])

1 个答案:

答案 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.)