問題:請問python里面有沒有像matlab或者C里面一樣有清楚當前畫板的命令缎岗? 比如現(xiàn)在有3個文檔哈打,每個文檔都可以畫一幅圖遏佣,我想用循環(huán)語句挖炬,實現(xiàn)對這3副圖的存儲,但是有一個問題状婶,就是第一幅圖存完以后意敛,當畫第二幅圖的時候,第一幅的圖畫會繼續(xù)保留到第二幅圖... 展開
答:建議你用面向?qū)ο蟮姆绞饺ギ媹D膛虫,一個圖作為一個對象草姻,這樣每次調(diào)用一個對象的保存圖片方法就可以只保存當前圖片。
你這種用法第三張圖會有三個子圖是因為三個子圖都畫在同一個對象上稍刀。
為了將面向?qū)ο蟮睦L圖庫包裝成只使用函數(shù)的調(diào)用接口撩独,pyplot模塊的內(nèi)部保存了當前圖表以及當前子圖等信息。當前的圖表和子圖可以使用gcf()和gca()獲得,它們分別是“Get Current Figure”和“Get Current Axis”的開頭字母縮寫跌榔。gcf()獲得的是表示圖表的Figure對象,而gca()則獲得的是表示子圖的Axes對象捶障。下面我們在IPython中運行上節(jié)的“matplotlib_simple_plot.py”程序僧须,然后調(diào)用gcf()和gca()查看當前的Figure和Axes對象。
給你個例子
import numpy as np
import matplotlib.pyplot as plt
plt.figure(1) # 創(chuàng)建圖表1
plt.figure(2) # 創(chuàng)建圖表2
ax1 = plt.subplot(211) # 在圖表2中創(chuàng)建子圖1
ax2 = plt.subplot(212) # 在圖表2中創(chuàng)建子圖2
x = np.linspace(0, 3, 100)
for i in xrange(5):
plt.figure(1)? ? # 選擇圖表1
plt.plot(x, np.exp(i*x/3))
plt.sca(ax1)? ? # 選擇圖表2的子圖1
plt.plot(x, np.sin(i*x))
plt.sca(ax2)? # 選擇圖表2的子圖2
plt.plot(x, np.cos(i*x))
plt.show()