使用SageMath绘制函数,而不是显示

时间:2018-01-08 10:57:14

标签: python matplotlib sage

我遇到一个问题,即我在SageMath中绘制的函数无法直观显示。即使我从SageMath信息页面复制并粘贴代码,某些功能也不会显示给我。我正在使用SageMath 8.1 Notebook。这是示例代码:

import numpy as np
import matplotlib.pyplot as plt    
myPlot = plt.plot(np.array([0, 1, 2, 5]))
show(myPlot)

输出:

[Line2D(-line49)]

而不是图表。据我所知,这应该输出一个可视图形而不仅仅是括号中的信息。

我从SageMath Help Pages作品中复制的一些代码,例如:

v = [(1/cos(-pi/2+pi*i/100), tan(-pi/2+pi*i/100)) for i in range(1,200) if i!=100 ]
L = [(a/(a^2+b^2), b/(a^2+b^2)) for a,b in v]

输出可视图表。

我不确定我在这里做错了什么。

1 个答案:

答案 0 :(得分:1)

Matplotlib对象尚未充分集成到Sage中,无法在Sage笔记本中显示。但是,您可以保存它们。

myPlot = plt.plot([1, 3, 2, 4])
plt.savefig('myPlot.png')

但是没有必要直接涉及matplotlib或NumPy,Sage有自己的绘图功能(可能在引擎盖下使用matplotlib)。

myPlot = line(zip(range(4), [0, 1, 2, 5]))
show(myPlot)

我使用了zip,因为Sage的line需要输入[(x1, y1), (x2, y2), ... ]。它可以直接输入为line([(0, 0), (1, 1), (2, 2), (3, 5)])