我创建了一个创建绘图的函数,基本上函数如下所示:
def draw_line(array):
fig, ax = plt.subplots()
ax.plot(array)
我想知道在想要在图中做多个图时是否有办法调用此函数。特别是,我想做类似的事情:
fig, axes = plt.subplots(nrows=2, ncols=3)
for i in list:
axes[i] = draw_line(*list[i])
但是,我得到的是一个空格,下面是实际的图。
答案 0 :(得分:2)
每次调用draw_line()时,您都不想调用新的plt.subplots()。相反,您想要使用现有的轴对象。在这种情况下,您希望为每个子图传递轴及其相应的数据。然后将两者结合在一起。
from matplotlib import pyplot as plt
import numpy as np
def draw_line(ax,array):
# fig, ax = plt.subplots()
ax.plot(array)
# example data and figure
example_list = [[1,2,3],[4,5,6],[3,2,5],[3,2,5],[3,2,5],[3,2,5]]
fig, axes = plt.subplots(nrows=2, ncols=3)
# loop over elements in subplot and data, plot each one
for ax,i in zip(axes.flatten(),example_list):
draw_line(ax,i)
答案 1 :(得分:2)