当前位置: 首页 > 面试题库 >

Python无头MatplotLib / Pyplot

慕河
2023-03-14
问题内容

我试图通过自动生成的图形文件来进行数据分析并减少 刺痛 ,并报告更多的图形,为此,我一直在使用matplotlib / pyplot /
pylab。效果很好,但是当我尝试在无头服务器上运行它时…

tkinter.TclError: no display name and no $DISPLAY environment variable

对于此应用程序,我仅使用PyLab,但在使用了一些Google之后,我将以下内容添加到pylab导入之前:

import matplotlib
matplotlib.use("Agg")

哪个应该更改了后端,但没有任何效果。

有什么想法我做错了吗?

远程机器确实具有X转发功能,但是由于该应用程序不需要显示任何内容,因此我相信通常的ssh -X hack是过分的。

示例:恶魔般的欺骗

同一台机器上的示例 工作 代码

import matplotlib
matplotlib.use("Agg")
import numpy as np
import pylab as pl


xvals=np.arange(100)
yvals=np.cumsum(np.random.random(100))
yvals[-10:]=0
yvals=np.log(yvals)
pl.close()

pl.plot(xvals,yvals)
pl.xlabel("X")
pl.ylabel("Y")
pl.title("Title")

pl.savefig("testgraph.png")

非工作 实码

import matplotlib
matplotlib.use("Agg")
import numpy as np
import pylab as pl
import utility as util
import os

... non graph stuff...
def graph_p(self):
    pl.close()
    channels=range(self.p.shape[0])
    for line in range(self.p.shape[1]):
        yvals=np.ma.masked_invalid(map(util.watts_to_dbmhz,self.p[:,line]))
        pl.plot(channels,yvals) #Error says it occurs here
    pl.xlabel("Subchannel Index")
    pl.ylabel("Power (dbmhz)")
    pl.title("Plot of per-tone power assignments for %d lines"%self.p.shape[1])
    pl.savefig(self.dest+self.scenario+'-power.png')

没关系。


问题答案:

原来是一个实用程序文件(不是我的!)正在引入pylab其他内容。将matplotlib后端选择移至初始页面。



 类似资料:
  • 问题内容: 最近几天,我一直在将Selenium,Tor和Firefox混为一谈,以完成多项任务。我设法用Python编写了一个简单的脚本,该脚本可通过Selenium控制Firefox,而Firefox则连接到Tor以获得隐私。 现在,我正在寻找一种节省资源的方法,因此我想到了以无头模式运行Firefox,我认为这是一个常见功能,但事实并非如此。我正在寻找一种方法来做到这一点。之所以是Firef

  • 在过去的几天里,我一直把Selenium、Tor和Firefox作为多个任务的组合。我用Python编写了一个简单的脚本,通过Selenium控制Firefox,同时Firefox连接到Tor以保护隐私。 现在,我正在寻找一种节省资源的方法,所以我想到了在无头模式下运行Firefox,我认为这是一个常见的特性但似乎并非如此。我正在寻找一种方法来做这件事。之所以是火狐浏览器,而不是基于终端的浏览器,

  • Matplotlib是一个python库,用于通过使用python脚本创建2D图形和绘图。 它有一个名为pyplot的模块,它通过提供控制线条样式,字体属性,格式化轴等的功能,使绘图变得容易。它支持各种各样的图形和图形 - 直方图,条形图,功率谱,错误图表等它与NumPy一起使用,为MatLab提供了一个有效的开源替代环境。 它也可以用于PyQt和wxPython等图形工具包。 通常,通过添加以下

  • 问题内容: 我最近将笔记本电脑升级到Snow Leopard,将TeX升级到了3.1415926版本(TeX Live 2011 / MacPorts 2011_5),并安装了Python 2.7.3。完成所有这些安装后,我运行了macport selfupdate和macport升级过时的情况。但是,现在,当我尝试在matplotlib中使用TeX时,会收到以下信息: 类似于上一个问题,我尝试通

  • 问题内容: I am currently generating the plot below: with this code: where is a: So the dates go from , increments by 5 minutes until , and then jumps to the next day, until , and so on. How can I avoid pl

  • 问题内容: 如何在matplotlib中绘制多个条形图,当我尝试多次调用bar函数时,它们重叠了,如下图所示,只能看到最大值红色。如何在X轴上绘制带有日期的多个条形图? 到目前为止,我已经尝试过了: 问题答案: import matplotlib.pyplot as plt from matplotlib.dates import date2num import datetime 我不知道“ y值