python - 具有函数 matplotlib 的多个图

标签 python matplotlib plot

我创建了一个创建绘图的函数,基本上该函数如下所示:

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

但是,我得到的是一个空网格,下面是实际的绘图。

最佳答案

您不想在每次调用 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) 

输出看起来像这样 enter image description here

关于python - 具有函数 matplotlib 的多个图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37952564/

相关文章:

python - 如何用Python实时绘制每秒15000点连续读取的数据?

R:颜色键的 sf 绘图大小

python - 扭曲和 Websockets : Beyond Echo

python - 对 matplotlib 中的不同子图使用相同的颜色条

python - 为 python 应用程序创建 DEB 文件

python - 使用 matplotlib 在 Tkinter 中绘制数据 - 在列表之间切换

python - 在 Networkx 图中绘制跟随其边缘的标签

r - 绘制表现图时缺少树提示

python - 在类的每个方法中捕获相同的异常

python - 将自定义格式化程序类与 Python 的 logging.config 模块一起使用