在Ubuntu中显示matplotlib图(用于Linux的Windows子系统)

所以它似乎在Ubuntu的Windows(Windows子系统为Linux)人们build议我们需要使用Agg后端,只保存图像,而不是显示情节。

import matplotlib matplotlib.use('Agg') # no UI backend import matplotlib.pyplot as plt import numpy as np t = np.arange(0.0, 2.0, 0.01) s = 1 + np.sin(2*np.pi*t) plt.plot(t, s) plt.title('About as simple as it gets, folks') #plt.show() plt.savefig("matplotlib.png") #savefig, don't show 

我们怎么能到达plt.show()会向我们展示图像的地方? 我目前的select是重写plot.show(),而不是只保存在/ mnt / c / Users / james / plots /在windows下的plot-148123456.png,只是有一个浏览器窗口打开查看图像。

我想我可以托pipe该文件夹并使用浏览器。

我的目标是能够运行简单的例子,如上面的代码,而不需要改变代码到ftp的图像的地方等我只想让情节出现在一个窗口。

有没有人想出一个体面的方式来做到这一点?

Solutions Collecting From Web of "在Ubuntu中显示matplotlib图(用于Linux的Windows子系统)"

好的,所以我得到了如下的工作,虽然有些步骤可能没有必要。 我在Windows上安装了Ubuntu,安装了python 3.6

  1. 谷歌“xming”(x11服务器)和下载(从sourceforge)/安装/运行
  2. sudo apt-get install x11-apps
  3. export DISPLAY=localhost:0.0 (添加到~/.bashrc永久化)
  4. sudo apt-get install gnome-calculator (得到GTK)
  5. 编辑matplotlibrc并更改后端:到后端:TkAgg

对我来说matplotlibrc/home/james/anaconda3/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc

请注意, GTKAgg没有工作,所以步骤4可能是毫无意义的,不知道。 gnome-calulator工作,所以GTK似乎工作,但它说需要pygtk,但pip install pygtk没有工作。

总之,这个代码在wsl上运行在ubuntu上的工作原理是:

 import matplotlib.pyplot as plt import numpy as np t = np.arange(0.0, 2.0, 0.01) s = 1 + np.sin(2*np.pi*t) plt.plot(t, s) plt.title('About as simple as it gets, folks') plt.show() 

“`

结果: 在这里输入图像说明

我有一种感觉,这是通过Jupyter笔记本或更好的东西,但它是很好的,有基本的命令行python matplotlib功能在Ubuntu的Linux上子系统的Windows

编辑:今天我运行以下命令,安装Qt5作为后端,它与Qt5Agg作为后端(vs TkAgg)正常工作。 如果你在WSL上运行一些需要Qt5的东西,这可能会有所帮助

sudo apt-get update && sudo apt-get install qtbase5-dev

另外,要找到你的matplotlibrc,并在命令提示符下键入:

python import matplotlib print(matplotlib.matplotlib_fname()) quit()

为了让matplotlib与Windows上的Ubuntu上的Bash上的 GTKAgg一起工作,我:

  1. 在Windows下安装VcXsrv(但事情应该和Xming一样)
  2. 如上所述设置DISPLAY [ export DISPLAY=localhost:0.0 (添加到〜/ .bashrc永久化)]
  3. 执行sudo pip uninstall matplotlib
  4. 其次是sudo apt install python-matplotlib
  5. 更新matplotlibrc读取backend : GTKAgg (而不是backend : agg backend : GTKAgg
  6. 我也运行sudo apt-get install python-gtk2-dev ,但这可能不是必须的。

卸载pip安装的matplotlib并通过apt重新安装似乎是必要的,因为pip不包括运行GTK所需的C扩展,但是apt版本却是这样。