【问题标题】:Difficulty in saving separate figures matplotlib难以保存单独的数字matplotlib
【发布时间】:2013-04-23 18:36:12
【问题描述】:

我在 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

我不能发布图片,所以你必须相信我的话或运行代码。

有谁知道如何克服这个问题?

【问题讨论】:

  • 请修正您帖子中的缩进,以便清楚其中的内容。
  • 现在清楚了吗?

标签: python matplotlib plot polar-coordinates


【解决方案1】:

默认情况下,绘图之间的轴不会被清除,因此当您绘制第二个绘图时,它会添加到已经绘制的任何内容。要清除它,请在您的 polar 调用之前插入 pyplot.cla()

【讨论】:

    【解决方案2】:

    我发现在类似的情况下,正确初始化轴是很好的

    for N in nrange:
        {Make the data}
    
        ax = py.subplot(111)
        ax.plot({data})
        py.savefig...
    

    这将自动清除轴并且清晰可读。如果您还使用py.xlabel,您可能希望将其更改为ax.set_xlabel,以使其更清楚。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      • 2023-03-13
      • 1970-01-01
      相关资源
      最近更新 更多