我在python中编写了一个程序,用于映射项目光盘上各点的随机位置。这个想法是,对于不同数量的点,随机位置将被保存为png以供稍后使用。代码如下:
def randr():#random r position
return random.random()
def randphi():#random phi position
return 2*pi*random.random()
nrange=[3,10,11,12,15,20,25,30]
for N in nrange:
rposition=[]#create a table of r positions
phiposition=[]#create a table of phi positions
rinverse=[]#create a table of 1/rij
for listcreation in range(0,N,1):#go through each charge
rposition.append(randr())#allocate a random r position
phiposition.append(randphi())#allocate a random phi position
name=N
filename = "c:/users/V/%i.png" % name
pyplot.polar(phiposition,rposition,marker='o', markersize=10,color='b',
linestyle='none')
pyplot.savefig(filename, format='png')
问题是,当运行此代码时,第一个数字保存3点,但第二个数字保存13而不是10!这继续N
我无法发布图片,因此您必须接受我的说法或运行代码。
有谁知道如何克服这个问题?
答案 0 :(得分:0)
默认情况下,不会在绘图之间清除轴,因此在绘制第二个绘图时,它会添加到已绘制的任何绘图中。要清除它,请在pyplot.cla()
来电之前插入polar
。
答案 1 :(得分:0)
我发现在类似的情况下,正确初始化
的轴是件好事for N in nrange:
{Make the data}
ax = py.subplot(111)
ax.plot({data})
py.savefig...
这将自动清除轴并且清晰可读。如果您还使用py.xlabel
,则可能希望将这些内容更改为ax.set_xlabel
,以便明确说明。