2016-02-23 2 views
0

У меня есть сценарий Python, который отображает электронную структуру полосы с соответствующей легендой цветовых патчей, как показано на рисунке here.. Она отлично работает на моей машине, но когда мой коллега попытался запустить сценарий на его машине, используя те же входные файлы, matplotlib правильно определяет структуру полосы, но не создает легенду. Он попытался запустить оба Python 2 и 3 и получил ту же ошибку: /usr/lib/pymodules/python2.7/matplotlib/axes.py:4747: UserWarning: не найдены помеченные объекты. Используйте метки = '...' kwarg на отдельных участках.Графики легенд Matplotlib на одной машине, но не другие

Поскольку мы используем те же входные файлы/код, я не знаю, почему он работает на одном компьютере, но не в другом. Любая идея о том, что может вызвать эту проблему и как ее исправить? Большое спасибо.

Вот часть кода, который должен создать легенду.

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]) 
+2

ли версия Matplotlib то же самое? – bernie

+2

Также проверьте различия в файлах matplotlibrc между двумя машинами. – tom

+0

Пробовал с помощью python 2.7.13 и matplotlib 1.5.3 с использованием Tk и бэкэнда Qt4. Оба построены правильно. Вы можете проверить версии и настройки между машинами. – rikisa

ответ

-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.) 
Смежные вопросы