首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SageMath绘制函数,不显示

使用SageMath绘制函数,不显示
EN

Stack Overflow用户
提问于 2018-01-08 18:57:14
回答 1查看 959关注 0票数 0

我遇到了一个问题,我在SageMath中绘制的函数不能直观地显示出来。即使我从SageMath信息页面复制并粘贴代码,某些函数也不会显示出来。我使用的是SageMath 8.1笔记本。示例代码如下:

代码语言:javascript
复制
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复制的一些代码可以工作,例如:

代码语言:javascript
复制
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]

它输出一个可视化的图形。

我不确定我到底做错了什么。

EN

回答 1

Stack Overflow用户

发布于 2018-01-09 01:12:08

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

代码语言:javascript
复制
myPlot = plt.plot([1, 3, 2, 4])
plt.savefig('myPlot.png')

但是不需要直接涉及matplotlib或NumPy,Sage有自己的绘图函数(可能在幕后使用matplotlib )。

代码语言:javascript
复制
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)])输入。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48148874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档