我正在尝试将networkx与Python一起使用.当我运行此程序时,它会收到此错误.有什么遗漏?
#!/usr/bin/env python
import networkx as nx
import matplotlib
import matplotlib.pyplot
import matplotlib.pyplot as plt
G=nx.Graph()
G.add_node(1)
G.add_nodes_from([2,3,4,5,6,7,8,9,10])
#nx.draw_graphviz(G)
#nx_write_dot(G, 'node.png')
nx.draw(G)
plt.savefig("/var/www/node.png")
Traceback (most recent call last):
File "graph.py", line 13, in <module>
nx.draw(G)
File "/usr/lib/pymodules/python2.5/networkx/drawing/nx_pylab.py", line 124, in draw
cf=pylab.gcf()
File "/usr/lib/pymodules/python2.5/matplotlib/pyplot.py", line 276, in gcf
return figure()
File "/usr/lib/pymodules/python2.5/matplotlib/pyplot.py", line 254, in figure
**kwargs)
File "/usr/lib/pymodules/python2.5/matplotlib/backends/backend_tkagg.py", line 90, in new_figure_manager
window = Tk.Tk()
File "/usr/lib/python2.5/lib-tk/Tkinter.py", line 1650, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, …Run Code Online (Sandbox Code Playgroud) 我有一些Python代码示例我想分享,如果在终端Python/IPython或IPython笔记本中执行,应该做一些不同的事情.
如何从我的Python代码中检查它是否在IPython笔记本中运行?
我正在使用ssh命令在另一台机器上运行我的python脚本linux.我也运行了这个命令:
source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
登录其他计算机后,为了在新计算机中定义正确的路径.我收到运行以下python代码行的错误消息,即使我已经尝试通过定义后端来遵循此问题中的指令.
>>> import matplotlib
>>> import pylab as plt
>>> matplotlib.use('Agg')
>>> import numpy as np
>>> x=np.arange(0,2,0.001)
>>> y=np.sin(x)**2+4*np.cos(x)
>>> fig = plt.figure()
>>> plt.plot(x,y,'r.')
Run Code Online (Sandbox Code Playgroud)
错误消息
This probably means that Tcl wasn't installed properly.
Traceback (most recent call last):
File "Systematic_Optimised.py", line 513, in <module>
fig = plt.figure()
File "/vol/anaconda/lib/python2.7/site-packages/matplotlib/pyplot.py", line 435, in figure
**kwargs)
File "/vol/anaconda/lib/python2.7/site-packages/matplotlib/backends/backend_qt4agg.py", line 47, in new_figure_manager
return new_figure_manager_given_figure(num, thisFig)
File "/vol/anaconda/lib/python2.7/site-packages/matplotlib/backends/backend_qt4agg.py", line 54, in new_figure_manager_given_figure …Run Code Online (Sandbox Code Playgroud) 在远程计算机上使用Matplotlib时(例如在Travis CI上),我遇到了与未设置的DISPLAY环境变量相关的频繁运行时错误.按照建议,我在测试脚本的开头设置了Agg后端matplotlib.use,并确保没有调用show().不过,我仍然会遇到以下错误:
Traceback (most recent call last):
File "/home/travis/anaconda/envs/testenv/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
self.test(*self.arg)
File "/home/travis/build/pymc-devs/pymc/pymc/tests/test_plots.py", line 36, in test_multichain_plots
forestplot(ptrace, vars=['early_mean', 'late_mean'])
File "/home/travis/build/pymc-devs/pymc/pymc/plots.py", line 325, in forestplot
interval_plot = subplot(gs[0])
File "/home/travis/anaconda/envs/testenv/lib/python2.7/site-packages/matplotlib/pyplot.py", line 896, in subplot
fig = gcf()
File "/home/travis/anaconda/envs/testenv/lib/python2.7/site-packages/matplotlib/pyplot.py", line 450, in gcf
return figure()
File "/home/travis/anaconda/envs/testenv/lib/python2.7/site-packages/matplotlib/pyplot.py", line 423, in figure
**kwargs)
File "/home/travis/anaconda/envs/testenv/lib/python2.7/site-packages/matplotlib/backends/backend_qt4agg.py", line 31, in new_figure_manager
return new_figure_manager_given_figure(num, thisFig)
File "/home/travis/anaconda/envs/testenv/lib/python2.7/site-packages/matplotlib/backends/backend_qt4agg.py", line 38, in new_figure_manager_given_figure
canvas = FigureCanvasQTAgg(figure) …Run Code Online (Sandbox Code Playgroud) 我想使我的数据分析和报告较少眼睛刺痛和更多图形自动生成图表,文件,要做到这一点我一直在玩matplotlib/pyplot/pylab.工作得非常出色,但是当我尝试在无头服务器上运行时......
tkinter.TclError: no display name and no $DISPLAY environment variable
Run Code Online (Sandbox Code Playgroud)
对于这个应用程序我只使用PyLab,但经过一些谷歌后,我在pylab导入之前添加了以下内容:
import matplotlib
matplotlib.use("Agg")
Run Code Online (Sandbox Code Playgroud)
哪个应该改变后端,但没有效果.
我有什么想法我做错了吗?
远程机器确实具有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")
Run Code Online (Sandbox Code Playgroud)
非工作实际代码
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 …Run Code Online (Sandbox Code Playgroud)