【问题标题】:Create Multipage PDF in matplotlib without drawing figure on desktop在matplotlib中创建多页PDF而不在桌面上绘制图形
【发布时间】:2019-12-25 08:22:06
【问题描述】:

在下面的示例代码中...

from matplotlib.backends.backend_pdf import PdfPages
import matplotlib.pyplot as plt

with PdfPages('multipage_pdf.pdf') as pdf:
    for i in range(10):
        fig = plt.figure()
        ax = fig.add_subplot(111)
        ax.scatter([0, 1, 2], [0, 1, 2])
        pdf.savefig()
        plt.close()

...每个绘图都会弹出一个带有实际画布的窗口。有没有一种优雅的解决方案可以跳过屏幕上画布的实际绘制,直接将绘图绘制成多页 pdf?

PS:问题仅在 spyder 中运行代码时引起,因此与 spyder 相关,与其他任何内容无关。直接使用python运行代码不会导致这个弹窗。

【问题讨论】:

  • 非常有用的工具!我无法重现 python 3.6.7 和 matplotlib 2.1.2 的问题。创建 pdf 时屏幕上没有任何内容...
  • 使用 python 3.7.3 (windows) 快速弹出该图,然后我在最后关闭它。这个弹出是我想跳过的。

标签: python matplotlib spyder pdfpages


【解决方案1】:

我认为您正在寻找的是清除数字。 first_page = plt.figure(figsize=(11.69, 8.27)) first_page.clf() 查看文档: https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.clf.html

一些例子: https://www.programcreek.com/python/example/102298/matplotlib.pyplot.clf

【讨论】:

  • 这不是清除图形,而是实际上完全省略了创建图形(窗口),直接绘制到pdf中。
  • 哦,这对问题更有意义,是的。我最近在 Windows 上使用了 Python 3.7.4 和多页 pdf,但从来没有弹出窗口。我使用了 PyCharm 编辑器,除非我在代码中编写“figure.show()”,否则不会显示任何绘图。它直接将其绘制到 pdf 中。
【解决方案2】:

这个问题不是由 matplotlib 或类似的东西引起的,只是从 Spyder 中运行代码导致了这个问题。直接用python运行代码不会出现我之前遇到的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 1970-01-01
    • 2022-09-30
    • 2019-07-21
    • 1970-01-01
    相关资源
    最近更新 更多