开发者社区> 问答> 正文

以编程方式在(I)python中制作和保存绘图而不首先在屏幕上渲染它们

一码平川MACHEL 2019-02-28 11:39:02 562

这是一个虚拟脚本,可以生成三个图并将它们保存为PDF。

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

df = pd.DataFrame({"A":np.random.normal(100),

               "B":np.random.chisquare(5, size = 100),
               "C":np.random.gamma(5,size = 100)})

for i in df.columns:

plt.hist(df[i])
plt.savefig(i+".pdf", format = "pdf")
plt.close()

我正在使用spyder,它使用IPython。当我运行这个脚本时,三个窗口弹出我然后消失。它有效,但有点烦人。

如何在不在屏幕上呈现的情况下将图形保存为pdf?

我正在寻找类似R的东西

pdf("path/to/plot/name.pdf")
commands
dev.off()
因为屏幕上没有任何内容呈现,但pdf会被保存。

Python
分享到
取消 提交回答
全部回答(1)
  • 一码平川MACHEL
    2019-07-17 23:29:41

    import matplotlib.pyplot as plt
    import pandas as pd
    import numpy as np

    df = pd.DataFrame({"A":np.random.normal(100),

                   "B":np.random.chisquare(5, size = 100),
                   "C":np.random.gamma(5,size = 100)})
    

    import matplotlib
    old_backend = matplotlib.get_backend()
    matplotlib.use("pdf")

    for i in df.columns:

    plt.hist(df[i])
    plt.savefig(i+".pdf", format = "pdf")
    plt.close()
    

    matplotlib.use(old_backend)
    基本上,将后端设置为类似于pdf设备的东西,然后将其设置回您习以为常的任何内容。

    0 0

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题