首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Matplotlib:可变大小的子图?

Matplotlib:可变大小的子图?
EN

Stack Overflow用户
提问于 2016-02-21 19:47:18
回答 1查看 835关注 0票数 0

我有一个用matplotlib绘制和保存数字的项目。由于项目本身运行良好,我最近开始重构,但有一个问题我还没有找到一个很好的解决方案。为了拆分实现和日志记录,我编写了一个日志类,它将数据传递给一个绘图类,在那里我遇到了一个问题:运行时之前的,我不知道一个日志绘图/图形中将存在多少个子图。

因此,在重构之前,我有许多不同的绘图函数和许多if语句。现在,我想把所有的东西传递给我的绘图class...but,我现在还不知道绘图类应该如何处理这些数据。

之前,我有这样的东西(在这里:对于4个子情节):

代码语言:javascript
运行
复制
f, axarr = plt.subplots(2, 2)

axarr[0, 0].set_title("original image")
axarr[0, 0].imshow(oimg, interpolation="none", cmap="gray")

axarr[0, 1].set_title("cost data") 
axarr[0, 1].plot(cost_data, ...)
(...)

当然,我可以在我的绘图类中为1,2,3,.创建6种不同的方法。子图,但我又重复了一遍。。

我是否可以以某种方式创建一个缓冲区、,在循环或类似的东西中动态添加一个子图?

还有其他想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-21 20:50:18

代码语言:javascript
运行
复制
def plotA(ax, data):
    pass

def plotB(ax, data):
    pass

def dispatcher(data, list_of_plot_types):
    function_map = {'A': plotA, 'B': plotB}
    fig, list_of_axes = plt.subplots(1, len(list_of_plot_types))

    for ax, plot_type in zip(list_of_axes, list_of_plot_types):
        function_map[plot_type](ax, data)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35541125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档