【问题标题】:How to pass plt object function of matplotlib to another method in python?如何将matplotlib的plt对象函数传递给python中的另一个方法?
【发布时间】:2019-02-19 01:37:22
【问题描述】:

假设我有一个可以使用plt.show 生成的图形。现在我希望将这个 plt 对象传递给这样的通用函数 -

generate_figs(plt):
    frmt = ['jpg','png']
    for i in frmt:
        plt.savefig('name.{}'.format(i))

generate_figs(plt)

这样的事情可以做吗?

【问题讨论】:

  • 什么是plt 对象? plt 通常是给模块matplotlib.pyplot 的名称。您可以改为将图形对象传递给您的函数
  • 是的。就是这样。

标签: python python-3.x numpy matplotlib jupyter-notebook


【解决方案1】:

这取决于你有多少数字。如果它只有一个数字,您可以简单地(大部分)保持函数原样,因为plt.savefig 将保存当前数字。

def generate_figs():
    frmt = ['jpg','png']
    for i in frmt:
        plt.savefig('name.{}'.format(i))

如果你有多个图形,那么你可以将特定的图形对象传递给函数并使用fig.savefig

import matplotlob.pyplot as plt

def generate_figs(fig):
    frmt = ['jpg','png']
    for i in frmt:
        fig.savefig('name.{}'.format(i))

fig1 = plt.figure()
plt.plot(some_data)

fig2 = plt.figure()
plt.plot(some_other_data)

generate_figs(fig1)

plt.show()

注意:在调用plt.show()之前,您必须保存该图

【讨论】:

  • 这似乎不起作用。它会生成空白图像。
  • 使用plt.show()之前总是需要保存图
  • 好的,这是由于我自己的细微差别。我正在生成子图,我必须取出初始化这些子图时定义的“无花果”对象。无论如何谢谢:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-01
  • 2015-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多