SAGE脚本中的图形

时间:2017-01-13 15:41:22

标签: python sage

我有以下SAGE脚本:

...
 15 #ALGORYTHM
 16 N = 0;
 17 PointsList = []
 18 Dots = open("dots.dat", "wb")
 19 while( K < 1e10 ):
 20   T = 2.0/(1+K)
 21   A = Matrix([[T-1, 0],[T, 0]]) 
 22   B = Matrix([[0, 2-T],[0, 1-T]]) 
 23   while ( 1 ):
 24     U = A*U_p + B*U_pp
 25     N+=1
 26     if ( abs(U[0]) <= abs(U_p[1]) ):
 27       break
 28     U_pp = U_p
 29     U_p = U
 30   
 31   Dots.write( "%f %f\n" % (K, N) )
 32   PointsList.append((K, N))
 33   K*=2
 34   N=0
 35   U_pp = I_pp; U_p = I_p; U = I_U; 
 36 
 37 ShowPoints = list_plot( PointsList, color = 'red', size = 20 )
 38 show( ShowPoints )
 39 Dots.close()
 40 print Dots.closed

但执行后,圣人没有给我看任何图片,也没有显示图片。我的问题是如果所有命令都在脚本中,如何进行SAGE绘制。 注意。我不想在SAGE的命令行中编写我的代码。 输出

wolfgang@wolfgang-IdeaPad-Z585:~/PyPrograms/Galperin_Variations$ sage 3_balls.sage 
Graphics object consisting of 1 graphics primitive
True
wolfgang@wolfgang-IdeaPad-Z585:~/PyPrograms/Galperin_Variations$ 

1 个答案:

答案 0 :(得分:0)

解决方法是保存剧情:ShowPoints.save('filename.png')

另一个(来自William Stein的建议):将命令sleep(1)添加到文件的末尾,并从shell提示符执行echo "%attach 3_balls.sage" | sage -q。您可以在没有sleep命令的情况下尝试它,但是当Sage显示图形时,它首先将图形保存到临时文件,并且当Sage退出时,它会删除该文件。因此,如果没有sleep命令,文件可能会在有机会打开之前被删除。使用sage -q代替sage沉默了Sage的旗帜。

如果我听到更好的解决方案,我会发布它。