【问题标题】:How can I print a plot in matplotlib either from the plot window or with a command?如何从绘图窗口或使用命令在 matplotlib 中打印绘图?
【发布时间】:2026-02-08 11:15:01
【问题描述】:

有没有办法从 matplotlib 打印绘图,无论是使用命令还是从绘图窗口本身?我知道我可以保存它然后打印,但我正在寻找更自动化的东西。谢谢。

【问题讨论】:

  • 像发送到打印机一样打印?我不知道任何简单的界面——它都是复杂的特定于平台的东西。一个关于如何在 Windows 中从 Python 打印的搜索出现了这个页面:timgolden.me.uk/python/win32_how_do_i/print.html

标签: python matplotlib


【解决方案1】:

您可以将图形保存为 pdf,然后使用subprocess 打印 pdf。在 *nix 上,可以使用 lpr

import matplotlib.pyplot as plt
import numpy as np
import subprocess
import shlex

n=20
x=np.linspace(0,np.pi,n)
y=np.sin(x)
plt.plot(x,y)
fname='/tmp/test.pdf'
plt.savefig(fname)
proc=subprocess.Popen(shlex.split('lpr {f}'.format(f=fname)))

【讨论】:

  • 整洁。不过,可能在将 fname 传递给 savefig 之前定义它。
  • 为了让它在我使用的 Windows 中工作,我只是将最后一行替换为:win32api.ShellExecute(0, "print", '/tmp/test.pdf', None, "。 ", 0)
【解决方案2】:

在绘图窗口本身,有一个“保存”切换按钮,在按钮行的右侧呈圆盘形状。

从命令行或脚本,您可以使用:

    pylab.savefig("directory/filename.pdf")

查看这里的一些细节:

http://matplotlib.sourceforge.net/faq/howto_faq.html#plotting-howto

【讨论】: