开发者社区> 问答> 正文

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

这是一个虚拟脚本,可以生成三个图并将它们保存为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会被保存。

展开
收起
一码平川MACHEL 2019-02-28 11:39:02 4864 0
1 条回答
写回答
取消 提交回答
  • 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设备的东西,然后将其设置回您习以为常的任何内容。

    2019-07-17 23:29:41
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载