Я начинаю работать с кнопками на своих участках (from matplotlib.widgets import Button
). Нажимая кнопки, появятся разные графики. По этой причине мои легенды меняются. Я с этим справиться, поставив mpatches в списке:Удаление дубликатов сообщений из списка
red_patch = mpatches.Patch(color='red', label='Numerical average')
handlelist.append(red_patch)
ax.legend(handles=handlelist, numpoints=1)
Теперь, если нажать на ту же кнопку дважды, red_patch также будет отображаться в два раза. Из-за этого я хочу удалить дубликаты, но это не сработает. До сих пор я пытался:
list(set(handelist))
, а также:
if red_patch not in handelist:
handlelist.append(red_patch)
Но и не будет работать, и я не понимаю, почему. Надеюсь, что у вас есть идея :)
Спасибо за вашу помощь! Я пробовал ваш код, но в тот момент, когда я получаю сообщение об ошибке: 'RCD8.py ', строка 141, в ax.legend (handles = handlelist.values (), numpoints = 1) Файл" anaconda/lib/python3 .5/site-packages/matplotlib/axes/_axes.py ", строка 502, в легенде для метки, дескриптор в zip (метки [:], handle [:]): ТипError: объект dict_values не подлежит индексированию ' –
HighwayJohn
ooops, я перешел в' list', теперь он должен быть индексируемым. Также изменил dict как 'OrderedDict' только в том случае, если порядок создания имеет значение. –
Спасибо, что сейчас работает! Только одна новая проблема. У меня есть один сброс кнопка, которая в основном сбрасывает список. С моим прежним кодом 'del handlelist [:]' выполнил задание. Теперь я получаю сообщение об ошибке. Что мне нужно здесь изменить? – HighwayJohn