У меня есть несколько наборов данных, которые я собрал, и я хотел бы визуализировать их на одном графике. Каждый набор состоит из нескольких строк, которые я хотел бы отображать как один и тот же цвет.Групповые линии в matplotlib
Вопросы:
- Как получить легенду отображать только один вход в цвет?
- Могу ли я показать/скрыть одну группу за раз?
- Кроме того, я хочу, чтобы иметь возможность показывать/скрывать отдельные кривые
- Я правильно об этом говорю, или я должен использовать другую технику? Возможно, оверлейные подзаголовки?
Соответствующие сообщения:
This Post имеет аналогичную конечную цель к тому, что я пытаюсь сделать, но никогда не был дан ответ.
This Post говорит о отвечая на вопрос легенды с помощью ручки, но я не думаю, что это применимо к обработке произвольное количество наборов данных, а затем ручки не будет работать для показа/скрытия, как они получают доступ только последний элемент поместить в
import matplotlib.pyplot as plt import numpy as np labels=['set a','set b','set c'] V=np.arange(.1,10,.1) datasets=[] for i in range(3): set=[] for j in range(10): sweep=np.exp(i*V)+np.random.rand() set.append(sweep) datasets.append(set) colors=iter(plt.cm.rainbow(np.linspace(0,1,len(datasets)))) for i,set in enumerate(datasets): c=next(colors) for j,sweep in enumerate(set): plt.plot(V,sweep,c=c,label=labels[i]+str(j)) plt.xscale('log') plt.yscale('log') plt.legend() plt.show()
Спасибо за помощь!
Я бы использовал виджеты Ipython для выбора наборов данных. Не могли бы вы представить исполняемый пример с некоторыми случайными данными? – roadrunner66
Я добавил исполняемый пример. Подробности об этом можно изменить. Я бы предпочел решить эту проблему наиболее гибким способом, так как это в конечном итоге сделает это в будущем. – user2636043