標籤:import temp 座標軸 form 編號 技術 二次 類型 normal
1.根據座標點繪製:
import numpy as npimport matplotlib.pyplot as pltx = np.array([1,2,3,4,5,6,7,8])y = np.array([3,5,7,6,2,6,10,15])plt.plot(x,y,‘r‘)# 折線 1 x 2 y 3 colorplt.plot(x,y,‘g‘,lw=10)# 4 line w# 折線 餅狀 柱狀x = np.array([1,2,3,4,5,6,7,8])y = np.array([13,25,17,36,21,16,10,15])plt.bar(x,y,0.2,alpha=1,color=‘b‘)# 5 color 4 透明度 3 0.9plt.show()
import matplotlib.pyplot as pltimport numpy as np#從-1-----1之間等間隔采66個數.也就是說所畫出來的圖形是66個點串連得來的#注意:如果點數過小的話會導致畫出來二次函數映像不平滑x = np.linspace(-1, 1,66)# 繪製y=2x+1函數的映像y = 2 * x + 1plt.plot(x, y)plt.show()# 繪製x^2函數的映像y = x**2plt.plot(x, y)plt.show()
figure的使用:
"""figure的使用"""import matplotlib.pyplot as pltimport numpy as np# x = np.linspace(-1, 1, 50)# figure 1y1 = 2 * x + 1plt.figure()plt.plot(x, y1)# figure 2y2 = x**2plt.figure()plt.plot(x, y2)# figure 3,指定figure的編號並指定figure的大小, 指定線的顏色, 寬度和類型#一個座標軸上畫了兩個圖形y2 = x**2plt.figure(num = 5, figsize = (4, 4))plt.plot(x, y1)plt.plot(x, y2, color = ‘red‘, linewidth = 1.0, linestyle = ‘--‘)plt.show()
一共會畫出三張圖,前兩張和上面的簡單案例畫出來的兩張一樣。第三張:
設定座標軸:
import matplotlib.pyplot as pltimport numpy as np# 繪製普通映像x = np.linspace(-1, 1, 50)y1 = 2 * x + 1y2 = x**2plt.figure()plt.plot(x, y1)plt.plot(x, y2, color = ‘red‘, linewidth = 1.0, linestyle = ‘--‘)# 設定座標軸的取值範圍plt.xlim((-1, 1))plt.ylim((0, 3))# 設定座標軸的lable#標籤裡面必須添加字型變數:fontproperties=‘SimHei‘,fontsize=14。不然可能會亂碼plt.xlabel(u‘這是x軸‘,fontproperties=‘SimHei‘,fontsize=14)plt.ylabel(u‘這是y軸‘,fontproperties=‘SimHei‘,fontsize=14)# 設定x座標軸刻度, 之前為0.25, 修改後為0.5#也就是在座標軸上取5個點,x軸的範圍為-1到1所以取5個點之後刻度就變為0.5了plt.xticks(np.linspace(-1, 1, 5))plt.show()
# 擷取當前的座標軸, gca = get current axisax = plt.gca()# 設定右邊框和上邊框ax.spines[‘right‘].set_color(‘none‘)ax.spines[‘top‘].set_color(‘none‘)# 設定x座標軸為下邊框ax.xaxis.set_ticks_position(‘bottom‘)# 設定y座標軸為左邊框ax.yaxis.set_ticks_position(‘left‘)# 設定x軸, y周在(0, 0)的位置ax.spines[‘bottom‘].set_position((‘data‘, 0))ax.spines[‘left‘].set_position((‘data‘, 0))
繪製散佈圖:
import numpy as npimport matplotlib.pyplot as plt# 資料個數n = 1024# 均值為0, 方差為1的隨機數x = np.random.normal(0, 1, n)y = np.random.normal(0, 1, n)# 計算顏色值color = np.arctan2(y, x)# 繪製散佈圖plt.scatter(x, y, s = 75, c = color, alpha = 0.5)# 設定座標軸範圍plt.xlim((-1.5, 1.5))plt.ylim((-1.5, 1.5))# 不顯示座標軸的值plt.xticks(())plt.yticks(())plt.show()
繪製柱狀圖:
import matplotlib.pyplot as pltimport numpy as np# 資料數目n = 10x = np.arange(n)# 產生資料, 均勻分布(0.5, 1.0)之間y1 = (1 - x / float(n)) * np.random.uniform(0.5, 1.0, n)y2 = (1 - x / float(n)) * np.random.uniform(0.5, 1.0, n)# 繪製柱狀圖, 向上plt.bar(x, y1, facecolor = ‘blue‘, edgecolor = ‘white‘)# 繪製柱狀圖, 向下plt.bar(x, -y2, facecolor = ‘green‘, edgecolor = ‘white‘)temp = zip(x, y2)# 在柱狀圖上顯示具體數值, ha水平對齊, va垂直對齊for x, y in zip(x, y1): plt.text(x + 0.05, y + 0.1, ‘%.2f‘ % y, ha = ‘center‘, va = ‘bottom‘)for x, y in temp: plt.text(x + 0.05, -y - 0.1, ‘%.2f‘ % y, ha = ‘center‘, va = ‘bottom‘)# 設定座標軸範圍plt.xlim(-1, n)plt.ylim(-1.5, 1.5)# 去除座標軸plt.xticks(())plt.yticks(())plt.show()
matplotlib常用操作