Python / Sage图形错误

时间:2014-04-08 15:34:07

标签: python sage

我正在编写一个包含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>]

还有几十个看起来像上面的东西

1 个答案:

答案 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命令行。要查看图表,您应该使用笔记本界面。