同时使用多个图形时,更改一张Matplotlib图形中的样式

时间:2018-07-03 13:55:34

标签: python matplotlib

比方说,我同时有2个Matplotlib图形,这些图形在for循环中进行了更新。其中一张图(假设fig0有图像,而fig1是线图)。我希望fig0拥有标准的Matplotlib样式,而在fig1中,我想为plt.style.use('ggplot')设置fig1

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

plt.style.use('ggplot')

fig0 = plt.figure(0)
fig1 = plt.figure(1)

for i in range(10):
    # print stuff in both figures

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

1 个答案:

答案 0 :(得分:1)

这可以解决它,除了循环。

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()

如果没有循环,您可能会更好……只要出于某种原因,循环不是绝对必要的。只需将要添加到绘图中的所有内容保留在列表中的循环中,然后修改上面的示例即可。