我正試圖在一個回圈中創建幾個圖。我每次創建的圖都會自動保存在不同的檔案夾中。以下是代碼
x = [2,4,6]
y = [1,2,3]
for i in x:
for j in y:
outputpath = './home/' 'folder' str(i) str(j)
if not path.exists(outputpath)。
try:
os.makedirs(outputpath)
except OSError:
print("創建失敗")
else:
print("成功創建")
a = np.random.rand(1000)
b = np.random.rand(20000)
#Plotting a。
plt.scatter((range(0,len(a)) ,a)
path1 = outputpath '/' 'a' ' .png'
plt.savefig(path1)
#Plotting b
plt.scatter((range(0,len(b)) ,b)
path2 = outputpath '/' 'b' ' .png'
plt.savefig(path2)
這些圖被保存在適當的檔案夾中。但是每一個新生成的繪圖都會在舊的繪圖上被覆寫。正如下面的圖所示。這個圖是為i=2和j=2創建的。這個圖被保存在./home/folder22中,它也被覆寫了之前檔案夾中生成的圖。我怎樣才能避免這種情況呢?
預先感謝!
更新:我相信我必須在繪圖之前每次都使用plt.figure()?
uj5u.com熱心網友回復:
你使用plt.close(),如下:
x = [2,4, 6]
y = [1,2,3]
for i in x:
for j in y:
outputpath = './home/' 'folder' str(i) str(j)。
if not path.exists(outputpath)。
try:
os.makedirs(outputpath)
except OSError:
print("創建失敗")
else:
print("成功創建")
a = np.random.rand(1000)
b = np.random.rand(20000)
#Plotting a。
plt.scatter((range(0,len(a)) ,a)
path1 = outputpath './' 'a' ' .png'
plt.savefig(path1)
plt.close()
#Plotting b
plt.scatter((range(0,len(b)) ,b)
path2 = outputpath './' 'b' ' .png'
plt.savefig(path2)
plt.close()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/328937.html
標籤:

