我的绘图代码似乎没有显示图形(第12行到第59行可能没有破坏它,但我包含它们以防万一 - 我的数据需要一段时间才能放入排序列表中)。< / p>
我已经弄乱了它并尝试了不同的东西,但我认为主要的问题是我不明白figure()
,plt.show()
,import matplotlib.pyplot as plt
,{{1}而其他一些行实际上意味着。我不知道什么时候需要使用它们或者为什么我需要使用它们。
有人可以帮助我并解释如何绘制两个列表的.svg,并在最后显示详细信息,说明为什么每行都包含在内,以及当我将from pylab import *
放在前面时以及放置{{ 1}}在前面,当我没有把任何东西放在前面等等?对不起,这需要很长时间才能回答,但我真的不明白matplotlib或他们网站上的任何例子。
plt.
答案 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)
,请尝试不输入用户的名称