我有以下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$
答案 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的旗帜。
如果我听到更好的解决方案,我会发布它。