gpt4 book ai didi

python - 无法使用 pyplot、pandas : _tkinter. TclError 绘制图形:无显示名称且无 $DISPLAY 环境变量

转载 作者:行者123 更新时间:2023-11-30 22:05:21 25 4
gpt4 key购买 nike

此代码连接到 MySQL 并获取我使用 pandas 读取的数据集。数据集位于 Pandas 数据框中后,我需要绘制它。但这会引发错误。这是狙击手

#!/usr/bin/python

import MySQLdb as mdb
import pandas as pd
import matplotlib.pyplot as plt

con = mdb.connect('hostname', 'username', 'password', 'database');

with con:
cur = con.cursor()
cur.execute("select month, post, comment, reply, dm, review")
rows = cur.fetchall()
df = pd.DataFrame( [[ij for ij in i] for i in rows] )
df.rename(columns={0: 'Month', 1: 'Post', 2: 'Comment', 3: 'Reply', 4: 'DM', 5: 'Review'}, inplace=True);
print(df.head(20))

df=df.set_index('Month')
df=df.astype(float)
df.plot(subplots=True)
plt.show()

Traceback (most recent call last):
File "random-exmaple.py", line 7, in <module>
plt.plot(x, y, "o")
File "/usr/local/lib/python2.7/site-packages/matplotlib/pyplot.py", line 3307, in plot
ax = gca()
File "/usr/local/lib/python2.7/site-packages/matplotlib/pyplot.py", line 950, in gca
return gcf().gca(**kwargs)
File "/usr/local/lib/python2.7/site-packages/matplotlib/pyplot.py", line 586, in gcf
return figure()
File "/usr/local/lib/python2.7/site-packages/matplotlib/pyplot.py", line 535, in figure
**kwargs)
File "/usr/local/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 81, in new_figure_manager
return new_figure_manager_given_figure(num, figure)
File "/usr/local/lib/python2.7/site-

packages/matplotlib/backends/backend_tkagg.py", line 89, in new_figure_manager_given_figure
window = Tk.Tk()
File "/usr/local/lib/python2.7/lib-tk/Tkinter.py", line 1745, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable

如何解决这个问题?

抱歉重复 - Issue with tkinter, python and seaborn: _tkinter.TclError: no display name and no $DISPLAY environment variable

最佳答案

当我们尝试在没有连接显示设备的远程机器上运行 GUI 应用程序或绘制某些东西时,会出现这种错误。在这种情况下,您可以将绘图保存在远程机器上,然后通过 scp 将它们复制到本地机器上。你可以这样做:

保存地 block :

ax = df.plot(subplots=True)
fig = ax.get_figure()
fig.savefig('plots_name.png')

从远程机器复制图片到本地目录:

scp {remote_username}@{remote_host}:{path_to_image}  {path_to_local_directory}

其中 {remote_host} 是您尝试连接的 IP 地址或域名,{remote_user} 是您在远程机器上的用户名,{ path_to_image} 是远程机器上要复制的图像的路径(使用 pwd 命令找到它)并且 {path_to_local_directory} 是本地目录的路径,其中你希望你的情节会出现。

编辑:

对于新人。这是更复杂的解决方案。这个问题的作者提供了解决这个问题的简单方法。检查这个:Issue with tkinter, python and seaborn: _tkinter.TclError: no display name and no $DISPLAY environment variable

关于python - 无法使用 pyplot、pandas : _tkinter. TclError 绘制图形:无显示名称且无 $DISPLAY 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41954338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com