Это моя первая попытка построения с помощью python, и у меня возникают проблемы с созданием легенды.
Это мой импорт:
import matplotlib.pyplot as plt
import pandas
Я загружаю свои данные следующим образом:
data = pandas.read_csv( 'data/output/limits.dat', sep=r"\s+", encoding = 'utf-8' )
и постройте его так:
axdata = data.plot( label = '$|U|^{2}$' , x = 'mass', y = 'U2',
style = '-s', markeredgecolor = 'none' )
По-видимому, axdata теперь является AxesSubplot
.
Теперь я хочу создать легенду, описанную здесь следующим образом:
plt.legend( (line1), ('label1') )
но я не знаю, как извлечь объект line
из AxesSubplot
plt.legend()
в своих собственных работах, но я хочу, чтобы некоторые из моих строк отображались в легенде. Правильно ли это? Есть ли другая команда, которую я могу использовать здесь?
ИЗМЕНИТЬ
Например, если я попробую:
plt.legend( [axdata], ['U2'])
Я получаю сообщение об ошибке:
~/.virtualenvs/science/lib/python3.3/site-packages/matplotlib/legend.py:613:
UserWarning: Legend does not support Axes(0.125,0.1;0.775x0.8)
Use proxy artist instead.
http://matplotlib.sourceforge.net/users/legend_guide.html#using-proxy-artist
(str(orig_handle),))
Я еще не определил, что такое прокси-исполнитель, но я думаю, что это инструмент, когда вы используете графический объект, отличный от объекта по умолчанию, который, как я думал, вероятно, не был здесь, потому что я пытаюсь создать нормальный график matlibplot. Слова "не-дефолт" и "нормальный" являются моими - я не уверен, что они еще означают.
ДРУГОЙ РЕДАКТИРОВАНИЕ: (потому что я неправильно прочитал комментарий)
plt.legend()
сам по себе ничего не выводит на консоль, но на полученном графике теперь есть легенда, автоматически генерируемая из построенных данных.