使用命令行将 matplotlib 图保存到文件中,而不使用 plt.save()

nan*_*nue 0 python matplotlib

我有一个创建情节然后显示它的脚本:

(以下脚本是文档中的一个示例)

# coding: utf-8
# file: test_plot.py

import yaml

import matplotlib.pyplot as plt
import numpy as np


def plot():
    t = np.arange(0.0, 2.0, 0.01)
    s = 1 + np.sin(2*np.pi*t)
    plt.plot(t, s)

    plt.xlabel('time (s)')
    plt.ylabel('voltage (mV)')
    plt.title('About as simple as it gets, folks')
    plt.grid(True)
    plt.show()

if __name__ == '__main__':
    plot()
Run Code Online (Sandbox Code Playgroud)

如果从命令行 ( python test_plot.py)执行此脚本,它会正确显示绘图。

问题是:是否可以在修改代码的情况下将绘图保存到文件中?

Imp*_*est 5

如果不修改代码,你当然不能改变它的结果。所以我将其解释为“不修改plot函数”。即您可以修改下面的任何内容if __name__ == '__main__':

在这种情况下,您可以在调用该函数时打开交互模式,然后将其关闭。

if __name__ == '__main__':
    plt.ion()
    plot()
    plt.ioff()
    plt.savefig("trala.png")
    plt.show()
Run Code Online (Sandbox Code Playgroud)