我正在编写一个包含2个方程的程序,当第一个方程x等于0时,我想绘制原始点(我设置为p和q)的图形。我的代码如下所示:
for x in range (0,200):
for y in range (0,200):
p=x
q=y
c=0
while (x > 0 and y > 0):
i=x-y+100
y=x+y-100
c=c+1
x=i
if c > 1000:
break
if x < 0:
plot((p,q))
它一直给我看起来像这样的错误
WARNING: Output truncated!
[<matplotlib.lines.Line2D object at 0x206b4f90>]
[<matplotlib.lines.Line2D object at 0x206b9110>]
[<matplotlib.lines.Line2D object at 0x206b9450>]
[<matplotlib.lines.Line2D object at 0x2008e3d0>]
[<matplotlib.lines.Line2D object at 0x206b9c50>]
[<matplotlib.lines.Line2D object at 0x206ba190>]
还有几十个看起来像上面的东西
答案 0 :(得分:0)
你得到的不是错误。当你的程序运行时,它会多次调用plot((p,q))
命令,并且每次调用它时,都会打印[<matplotlib.lines.Line2D object at 0x206ba190>]
或其中的一些变体。此行打印的次数使Sage截断输出。
如果您的目标是在同一坐标平面上获得每条线的图形,则需要做两件事。首先,您需要强制Sage将每个图组合成一个图像。在顶部,添加以下行:plot_list = []
。然后,将plot((p,q))
替换为plot_list.append(plot((p,q)))
。此代码不会在生成图形对象时尝试显示图形对象,而是将它们存储在列表中。在底部,在两个循环之外添加sum(plot_list).show()
。这结合了所有图表并告诉Sage显示它们。其次,这可能不适用于Sage命令行。要查看图表,您应该使用笔记本界面。