Matplotlib plt.show()未显示图形

时间:2014-02-10 21:34:21

标签: python graph matplotlib

我的绘图代码似乎没有显示图形(第12行到第59行可能没有破坏它,但我包含它们以防万一 - 我的数据需要一段时间才能放入排序列表中)。< / p>

我已经弄乱了它并尝试了不同的东西,但我认为主要的问题是我不明白figure()plt.show()import matplotlib.pyplot as plt,{{1}而其他一些行实际上意味着。我不知道什么时候需要使用它们或者为什么我需要使用它们。

有人可以帮助我并解释如何绘制两个列表的.svg,并在最后显示详细信息,说明为什么每行都包含在内,以及当我将from pylab import *放在前面时以及放置{{ 1}}在前面,当我没有把任何东西放在前面等等?对不起,这需要很长时间才能回答,但我真的不明白matplotlib或他们网站上的任何例子。

plt.

4 个答案:

答案 0 :(得分:7)

您正在尝试使用不会生成plt.show()图形的后端。相反,您需要使用另一个后端,如WXAgg或QT4agg,其选择取决于您的系统。有关Matplotlib的后端,请参阅this information。相反,如果您希望使用svg格式的文件,则应使用 plt.savefig('filename.svg')。生成的文件将在您的工作目录中,您只需在脚本完成后打开它。

详细说明一些其他问题,即不了解各行的含义:

假设您正在使用支持绘制到用户界面的后端(渲染器),

plt.show()将在您的屏幕上生成交互式绘图。

import matplotlib.pyplot as plt只是从matplotlib包中导入pyplot库中的函数和类,而plt部分就像制作一个昵称来更容易地访问这些函数。例如,plt.show()plt.figure等,而不必每次都输入matplotlib.pyplot.show()。另一方面,from pylab import *导入没有前缀的所有函数。一般情况下,我会避免使用import *,因为稍后回读代码会让人感到困惑。此外,pylab可能不是您在此处显示的代码所需的内容。

plt.figure()是初始化你的数字的命令。在这种情况下,由于您使用了plot = plt.figure,因此可以键入plot.plot(xData, yData),因为您的变量图现在是图类的一部分。例如,如果您需要执行某些操作的其他轴,子图或颜色条,则可以使用ax

我真的建议您浏览matplotlib网站上的pyplot tutorial,以便对使用matplotlib进行更全面但相对简单而简单的介绍。

答案 1 :(得分:1)

如果您使用pip install matplotlib在virtualenv中--no-site-packages plt.show(),并且apt-get没有显示您的情节:

1)virtualenv --system-site-packages FOLDERNAME安装matplotlib,然后安装pip uninstall matplotlib sudo apt-get install python-gtk2-dev ln -sf /usr/lib/python2.7/dist-packages/{glib,gobject,cairo,gtk-2.0,pygtk.py,pygtk.pth} $VIRTUAL_ENV/lib/python2.7/site-packages pip install matplotlib

2)或者,来自this guide

GTKAgg

指南中还有另一个步骤,但这对我来说并不是必要的(将后端设置为~/.config/matplotlib/matplotlibrc中的public function someMethod(Request $request) { // If you know the segment number $id = $request->segment(2); // If you know the parameter name $id = $request->route('id'); // If you only know it's the last segment $segments = $request->segments(); $id = array_pop($segments); }

答案 2 :(得分:0)

对于我来说,我通过从python.org安装python 3.7解决了该问题,然后在我的IDE(PyCharm CE)上简单地更改了解释器+当然,再次安装了所有必需的软件包。无需使用其他后端,我将TkAgg保留在我的项目中。

答案 3 :(得分:0)

尝试一下:-

plot = plt.figure()
plt.plot(xData, yData)
plt.show()
plt.savefig(str(name).split()[0]+'.png)

,请尝试不输入用户的名称