【发布时间】:2016-02-23 22:10:28
【问题描述】:
我有一个 Python 脚本,它绘制了一个带有相应色块图例的电子能带结构,如图所示 here. 它在我的机器上运行良好,但是当我的同事试图在他的机器上使用相同的输入文件运行脚本时,matplotlib 正确绘制能带结构,但无法创建图例。他尝试在 Python 2 和 3 中运行并收到相同的错误:/usr/lib/pymodules/python2.7/matplotlib/axes.py:4747: UserWarning: No labelled objects found。在个别地块上使用 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])
【问题讨论】:
-
matplotlib的版本一样吗?
-
还要检查两台机器之间matplotlibrc文件的差异
-
尝试使用 python 2.7.13 和 matplotlib 1.5.3,使用 Tk 和 Qt4 后端。两者都正确绘制。您可能需要检查机器之间的版本和设置。
标签: python matplotlib