2016-03-11 3 views
0

У меня есть несколько наборов данных, которые я собрал, и я хотел бы визуализировать их на одном графике. Каждый набор состоит из нескольких строк, которые я хотел бы отображать как один и тот же цвет.Групповые линии в 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() 
    

Спасибо за помощь!

+0

Я бы использовал виджеты Ipython для выбора наборов данных. Не могли бы вы представить исполняемый пример с некоторыми случайными данными? – roadrunner66

+0

Я добавил исполняемый пример. Подробности об этом можно изменить. Я бы предпочел решить эту проблему наиболее гибким способом, так как это в конечном итоге сделает это в будущем. – user2636043

ответ

0

Это не отвечает на шоу и скрывает полные группы одновременно, но я ответил на все остальные вопросы, используя две легенды. Вы можете создать interactive legend со всеми записями в нем, а затем создать second legend только с нужными вами записями. Затем я делаю все, что хочу, и перетаскиваю интерактивную легенду из области сюжета и обрезаю ее.

Смежные вопросы