相关疑难解决方法(0)

在没有运行X服务器的情况下生成matplotlib图

Matplotlib似乎需要$ DISPLAY环境变量,这意味着正在运行的X服务器.
某些Web托管服务不允许运行X服务器会话.
有没有办法在没有正在运行的X服务器的情况下使用matplotlib生成图形?

[username@hostname ~]$ python2.6
Python 2.6.5 (r265:79063, Nov 23 2010, 02:02:03)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib.pyplot as plt
>>> fig = plt.figure()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/username/lib/python2.6/matplotlib-1.0.1-py2.6-linux-i686.egg/matplotlib/pyplot.py", line 270, in figure
    **kwargs)
  File "/home/username/lib/python2.6/matplotlib-1.0.1-py2.6-linux-i686.egg/matplotlib/backends/backend_tkagg.py", line 80, in new_figure_manager
    window = Tk.Tk()
  File "/usr/local/lib/python2.6/lib-tk/Tkinter.py", line 1643, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

172
推荐指数
2
解决办法
11万
查看次数

如何使用pylab远程保存数字?

我正试图用命令在远程计算机上生成一个数字pylab.savefig.但我得到了这样的错误:

Unable to access the X Display, is $DISPLAY set properly?
Run Code Online (Sandbox Code Playgroud)

如何正确保存图形?

python matplotlib figure

71
推荐指数
1
解决办法
3万
查看次数

Matplotlib:远程机器上的显示图

我有一个python代码在远程机器上进行一些计算,名为A.我ssh从一台名为B的机器上连接A via .有没有办法在机器B上显示数字?

python ssh matplotlib

53
推荐指数
5
解决办法
6万
查看次数

未定义DISPLAY时使用Matplotlib

在远程计算机上使用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)

python matplotlib

34
推荐指数
1
解决办法
3万
查看次数

"UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure." when plotting figure with pyplot on Pycharm

I am trying to plot a simple graph using pyplot, e.g.:

import matplotlib.pyplot as plt
plt.plot([1,2,3],[5,7,4])
plt.show()
Run Code Online (Sandbox Code Playgroud)

but the figure does not appear and I get the following message:

UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.
Run Code Online (Sandbox Code Playgroud)

I saw in several places that one had to change the configuration of matplotlib using the following:

import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
Run Code Online (Sandbox Code Playgroud)

I did this, but then got an error message because it …

python matplotlib pycharm

34
推荐指数
10
解决办法
2万
查看次数

使用tkinter到ssh没有显示名称和没有$ DISPLAY环境变量

我正在尝试运行一个非常简单的代码,在集群中输出.png文件.这是代码:

import matplotlib.pyplot as plt
import numpy as np

x = np.random.randn(60)
y = np.random.randn(60)

plt.scatter(x, y, s=20)

out_png = 'path/to/store/out_file.png'
plt.savefig(out_png, dpi=150)
Run Code Online (Sandbox Code Playgroud)

如果我使用python simple_code.py安装了matplotlib 1.2.1的系统中的命令运行此代码,我会收到警告:

Unable to load library icui18n "Cannot load library icui18n:
Run Code Online (Sandbox Code Playgroud)

.png图像仍然生成,所以我没有问题.但是如果我在安装了matplotlib 1.3.0的集群中使用相同的命令和代码,则会失败并显示错误:

Traceback (most recent call last):
  File "simple_code.py", line 33, in <module>
    plt.scatter(x, y, s=20)
  File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 3078, in scatter
    ax = gca()
  File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 803, in gca
    ax =  gcf().gca(**kwargs)
  File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 450, in gcf
    return figure()
  File …
Run Code Online (Sandbox Code Playgroud)

python ssh numpy tkinter matplotlib

30
推荐指数
1
解决办法
8万
查看次数

tkinter.TclError:无法连接显示"localhost:18.0"

我试图在中央服务器上运行模拟(用python编写),当模拟完成后,通过连接到我的本地PC将保存的图形文件/保存的数据文件移动到我的本地PC.代码如下:

import matplotlib.pyplot as plt
import subprocess
import scipy.io
import os

#Save data file:
scipy.io.savemat(data_path + Filename_str, dict(A=board))

#Create / Save figure by using imshow (Heatmap)
p = plt.imshow(mean_map.T, cmap = plt.cm.gist_yarg_r, origin = 'lower',  extent = [0, phi, 0, Z], aspect='auto')
plt.savefig(figure_path + Filename_str + '-Homophily.pdf')

# Connect to my local host (arabian-knights) using ssh, and follow command.
ret = subprocess.call(['ssh', 'arabian-knights', 'mv Data/* /scratch/Data/'])
ret = subprocess.call(['ssh', 'arabian-knights', 'mv Figure/* /scratch/Figure/'])
Run Code Online (Sandbox Code Playgroud)

我从本地计算机(阿拉伯骑士)连接到服务器计算机后,在服务器计算机的后台运行此模拟.即使我关闭与服务器计算机的连接,因为模拟在后台运行,它不会停止,并且模拟完成后数据文件正确地移动到我的本地计算机.但是,不保存图文件(由matplotlib.pyplot.imshow生成),显示以下错误消息:

Traceback (most recent call …
Run Code Online (Sandbox Code Playgroud)

python ssh subprocess matplotlib

25
推荐指数
2
解决办法
3万
查看次数

为什么 tkinter(或海龟)似乎丢失或损坏?它不应该是标准库的一部分吗?

当尝试使用 Tkinter 标准库包或其相关功能(海龟图形使用turtle和内置 IDLE IDE)或使用将此作为依赖项的第三方库(例如显示使用 Matplotlib 的图形窗口)。

似乎即使不存在因隐藏标准库模块名称而引起的问题(对于尝试遵循教程并使用海龟图形的初学者来说,这是一个常见问题 -示例 1示例 2示例 3示例 4),通常会发生标准库 Tkinter 无法工作的情况。这是一个大问题,因为许多初学者再次尝试遵循使用海龟图形的教程,并盲目地假设turtle标准库将会存在。

可能会报错:

当 Tkinter 被记录为标准库的一部分时,为什么会出现这样的问题?如何添加或修复缺少的标准库功能?对于特定的 …

python installation tkinter modulenotfounderror

19
推荐指数
1
解决办法
9813
查看次数

使用matplotlib自动检测显示可用性

我正在脚本中生成matplotlib数字,我可以在有或没有图形显示的情况下交替运行.我希望脚本能够自动调整:通过显示,它应该以交互方式显示数字,而没有显示,它应该只是将它们保存到文件中.

没有正在运行的X服务器生成matplotlib图的问题的答案,我了解到可以使用Agg后端进行非交互式绘图.

所以我正在尝试使用此代码:

import matplotlib
try:
    import matplotlib.pyplot as plt
    fig = plt.figure()
    havedisplay = True
except:
    matplotlib.use("Agg")
    import matplotlib.pyplot as plt
    fig = plt.figure()
    havedisplay = False
# do the plotting
if havedisplay:
    plt.show()
else:
    fig.savefig("myfig.png")
Run Code Online (Sandbox Code Playgroud)

这在带有显示器的情况下是例外的.但是,如果没有显示,则调用matplotlib.use无效,因为已经选择了显示.很明显我matplotlib.use之前应该打电话import matplotlib.pyplot,但后来我不知道如何测试显示器是否可用.

我也试过使用实验函数matplotlib.switch_backend而不是matplotlib.use,但这会产生RuntimeError.

有人知道如何使上述代码按预期工作,或者可以建议另一种方法来检测显示器是否可用于matplotlib?

python linux matplotlib

15
推荐指数
3
解决办法
4763
查看次数

TclError:EC2上没有显示名称和$ DISPLAY环境变量

我想在Amazon EC2(Linux AMI)上使用iPython.我已经安装了Anaconda并启动了iPython来测试我已经创建的一些脚本.现在我只对在终端(不是笔记本电脑)中运行它感兴趣.

在我的代码的开头我总是这样做:

import json
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
Run Code Online (Sandbox Code Playgroud)

但是,我从文本编辑器尝试了CTRL + C,然后在终端中使用%paste我得到错误:

TclError: no display name and no $DISPLAY environment variable
Run Code Online (Sandbox Code Playgroud)

如果我按照这个建议尝试ssh -X name @ host 没有显示名称和使用tkinter通过ssh的$ DISPLAY环境变量,我得到:

/opt/X11/bin/xauth:  file /Users/adrianp/.Xauthority does not exist
Warning: untrusted X11 forwarding setup failed: xauth key data not generated
X11 forwarding request failed on channel 0
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我尝试了https://superuser.com/questions/249045/x11-forwarding-from-amazon-ec2-ami,但仍然收到警告:

 Warning: untrusted X11 forwarding setup failed: xauth key data not generated
Run Code Online (Sandbox Code Playgroud)

同样的错误: …

python amazon-ec2 ipython anaconda

12
推荐指数
1
解决办法
7801
查看次数