代码之家  ›  专栏  ›  技术社区  ›  Manuel Lagunas

同时处理多个图形时更改一个matplotlib图形中的样式

  •  3
  • Manuel Lagunas  · 技术社区  · 7 年前

    假设我有两个matplotlib图形同时在for循环中更新。其中一个数字 fig0 有图像,而 fig1 是一个线条图)。我想要 图0 在中使用标准matplotlib样式 图1 我想设定 plt.style.use('ggplot') 对于 图1 是的。

    到目前为止,我已经尝试过:

    plt.style.use('ggplot')
    
    fig0 = plt.figure(0)
    fig1 = plt.figure(1)
    
    for i in range(10):
        # print stuff in both figures
    

    但这一套 ggplot 两个图形中的样式(如预期)。我找不到在每个图形中分别设置样式的方法。

    1 回复  |  直到 7 年前
        1
  •  1
  •   mjgalindo    7 年前

    这就解决了,除了循环。

    import matplotlib.pyplot as plt
    
    with plt.style.context('ggplot'):
        plt.figure(0)
        plt.plot([3,2,1])
    with plt.style.context('default'):
        plt.figure(1)
        plt.plot([1,2,3])
    
    plt.show()
    

    不管怎么说,你最好还是不做循环…因为某些原因循环不是绝对必要的。只需将添加到循环图中的任何内容保存在列表中,然后修改上面的示例。