配置屬性
import matplotlib.pyplot as plt
import numpy as np
plt.figure(figsize=(4,3))
x = np.arange(0, 5, 0.1)
line = plt.plot(x, 0.05*x*x)[0]
#調用Line2D對象的Set_*()方法來設置屬性值,修改曲線的透明度
line.set_alpha(0.5)
#同時繪製sin cos 兩條曲線
lines = plt.plot(x, np.sin(x), x, np.cos(x))
#調用setp()可以同時配置多個對象屬性,這裏同時設置兩條曲線的顏色和線寬
plt.setp(lines, color="r", linewidth=4.0)
plt.legend()
plt.show()
line.get_linewidth()
plt.getp(lines[0], "color")
該部分就不再過多贅述。
繪製多子圖
一個Figure對象可以包含多個子圖(Axes),在matplotlib中用Axes對象表示一個繪圖區域,稱之爲子圖。在前面的例子中,Figure對象只包括一個子圖。可以使用subplot()快速繪製包含多個子圖的圖表,調用形式如下:
subplot(numRows, numCols, plotNum)
圖表整個繪圖區域被等分成numRows行和numCols列,然後從左到右,從上到下的順序對每個區域進行編號,左上區域的編號爲1.plotNum參數指定所創建Axes對象的區域。如果numRows, numCols, plotNum三個參數都小於 10 ,則可把它們縮寫成一個整數。例如subplot(323)和subplot(3,2,3)的含義相同。如果新創建的子圖和之前創建的子圖區域有重疊的部分,之前的子圖將被刪除。
看下面代碼
import matplotlib.pyplot as plt
import numpy as np
plt.figure(figsize=(8,6))
for idx, color in enumerate("rgbyck"):
plt.subplot(321+idx, axisbg=color)
plt.legend()
plt.show()
效果如圖
import matplotlib.pyplot as plt
import numpy as np
plt.figure(figsize=(8,6))
plt.subplot(221)
plt.subplot(222)
plt.subplot(212)
plt.legend()
plt.show()
效果如圖
import matplotlib.pyplot as plt
import numpy as np
plt.figure(1)
plt.figure(2)
ax1 = plt.subplot(121)
ax2 = plt.subplot(122)
x = np.linspace(0,3,100)
for i in range(5):
plt.figure(1)
plt.plot(x, np.exp(i*x/3))
plt.sca(ax1)
plt.plot(x, np.sin(i*x))
plt.sca(ax2)
plt.plot(x, np.cos(i+x))
plt.legend()
plt.show()