首页 > 解决方案 > matplotlib 中的多个绘图,带有返回绘图的函数

问题描述

假设我有:

import matplotlib.pyplot as plt

def generate_plot(data):
    plt.plot(...)
    return plt

我们假设 _data 是一个长度为 4 的可迭代对象。

if "__name__" = "__main__":
   _data = ....
   plt.figure(1)
   for data_i, index in _data, range(4):
       plt.subplot(2,2,index+1)
       ??????? <---- what goes here?

   plt.savefig(...)

我可以调用 generate_plot 以便将绘制的图形放置在位置索引中吗?如果是这样,怎么做?

老实说,我不太明白 plt 对象在 Matplotlib 中是如何工作的。

标签: pythonmatplotlib

解决方案


你不想return plt。您可以将其plt视为访问 matplotlib 中所有绘图内容的一种方式,而不是“绘图对象”。首先生成数据,然后绘制它。比如说我有

import numpy as np
import matplotlib.pyplot as plt

def generate_data():
    return np.random.randint(10, size=10)

plt.figure(1)
for i in range(4):
    plt.subplot(2, 2, i + 1)
    plt.plot(generate_data())

plt.show()

推荐阅读