matplotlib中的组行

时间:2016-03-11 04:53:09

标签: python 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()
    

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这不会回答节目并且一次隐藏整个群组,但我通过使用两个传说回答了所有其他问题。您可以创建包含其中所有条目的interactive legend,然后创建仅包含所需条目的second legend。然后我制作我想要的所有内容并将交互式图例拖出绘图区域并将其裁剪掉。