到目前为止这是我的代码。 我有Python 2.7(我今天和Sage一起下载)并且正在从终端在Mac OS X 10.6.8上运行它(但是,我确实计划从笔记本()GUI运行它,一旦我弄清楚会发生什么这些错误)。
sage: import scipy
sage: import numpy
sage: import matplotlib
sage: cd /Users/nickscomputer/Desktop
/Users/nickscomputer/Desktop
sage: DATA = numpy.loadtxt("PracticeDat.txt")
sage: DATA
array([[ 1., 1.],
[ 2., 4.],
[ 3., 9.],
[ 4., 16.],
[ 5., 25.],
[ 6., 36.],
[ 7., 49.],
[ 8., 64.],
[ 9., 81.],
[ 10., 100.]])
sage: X = DATA[:,0]
sage: Y = DATA[:,1]
sage: plot(X,Y)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/Users/nickscomputer/Desktop/<ipython console> in <module>()
/Applications/sage/local/lib/python2.7/site-packages/sage/misc/decorators.pyc in wrapper(*args, **kwds)
685 kwds[new_name] = kwds[old_name]
686 del kwds[old_name]
--> 687 return func(*args, **kwds)
688
689 return wrapper
/Applications/sage/local/lib/python2.7/site-packages/sage/misc/decorators.pyc in wrapper(*args, **kwds)
532 options['__original_opts'] = kwds
533 options.update(kwds)
--> 534 return func(*args, **options)
535
536 #Add the options specified by @options to the signature of the wrapped
/Applications/sage/local/lib/python2.7/site-packages/sage/plot/plot.pyc in plot(funcs, *args, **kwds)
1024 # if there is one extra arg, then it had better be a tuple
1025 elif n == 1:
-> 1026 G = _plot(funcs, *args, **kwds)
1027 elif n == 2:
1028 # if there are two extra args, then pull them out and pass them as a tuple
/Applications/sage/local/lib/python2.7/site-packages/sage/plot/plot.pyc in _plot(funcs, xrange, parametric, polar, fill, label, randomize, **options)
1095 return Graphics()
1096 funcs, ranges = setup_for_eval_on_grid(funcs, [xrange], options['plot_points'])
-> 1097 xmin, xmax, delta = ranges[0]
1098 xrange=ranges[0][:2]
1099 #parametric_plot will be a list or tuple of two functions (f,g)
ValueError: too many values to unpack
我尝试过做list_plot,我收到了这个错误:
sage: list_plot(X,Y)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/Users/nickscomputer/Desktop/<ipython console> in <module>()
/Applications/sage/local/lib/python2.7/site-packages/sage/misc/decorators.pyc in wrapper(*args, **kwds)
532 options['__original_opts'] = kwds
533 options.update(kwds)
--> 534 return func(*args, **options)
535
536 #Add the options specified by @options to the signature of the wrapped
/Applications/sage/local/lib/python2.7/site-packages/sage/plot/plot.pyc in list_plot(data, plotjoined, **kwargs)
1561 """
1562 from sage.plot.all import line, point
-> 1563 if data == {} or data == () or data == []:
1564 return Graphics()
1565 if isinstance(data, dict):
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我也尝试过这个选项,它会生成空的绘图轴并出现此错误:
sage: plot((X,Y))
verbose 0 (1978: plot.py, generate_plot_points) WARNING: When plotting, failed to evaluate function at 200 points.
verbose 0 (1978: plot.py, generate_plot_points) Last error message: ''numpy.ndarray' object is not callable'
verbose 0 (1978: plot.py, generate_plot_points) WARNING: When plotting, failed to evaluate function at 200 points.
verbose 0 (1978: plot.py, generate_plot_points) Last error message: ''numpy.ndarray' object is not callable'
答案 0 :(得分:2)
使用list_plot
。它的文件说
如果您有单独的x值列表和y值 相互映射,使用“zip”命令制作单个列表 其条目是(x,y)值对,并将结果输入 “list_plot”
所以特别要使用list_plot(zip(X,Y))
。或者,将DATA
转换为单个列表:使用list_plot(DATA.tolist())
。
答案 1 :(得分:0)
我还要指出,我喜欢将line()
与linestyle=''
选项一起使用,这样我就可以获得更多matplotlib选项(出于某种原因list_plot
和points
don'做得很好):
DATA = [[ 1., 1.],
[ 2., 4.],
[ 3., 9.],
[ 4., 16.],
[ 5., 25.],
[ 6., 36.],
[ 7., 49.],
[ 8., 64.],
[ 9., 81.],
[ 10., 100.]]
line(DATA,marker='^',linestyle='')