本文介紹Python計算機程序設計腳本語言中一個重要的繪圖庫Matplotlib,它可以生成各種硬拷貝格式和跨平臺交互式環(huán)境的出版物質(zhì)量數(shù)據(jù)。Matplotlib可用于Python腳本,Python和IPython shell,Jupyter筆記本等。
對于簡單的繪圖,pyplot模塊提供類似MATLAB的接口,特別是與IPython結(jié)合使用時。對于高級用戶,你可以通過面向?qū)ο蟮慕缑婊蛲ㄟ^MATLAB用戶熟悉的一組函數(shù)完全控制線型,字體屬性,軸屬性等。如下圖,你可以自由繪制常見圖形,3D圖形等。
關(guān)于Matplotlib如何安裝可以自行搜索,昌暉儀表建議初學者安裝Anaconda軟件,Anaconda 是一個用于科學計算的Python發(fā)行版,支持Linux,Mac,Windows,包含了眾多流行的科學計算、數(shù)據(jù)分析的Python包??梢缘卿浌倬W(wǎng)獲取軟件。根據(jù)自己的操作系統(tǒng)選擇對應的軟件,Python版本選擇3.7。
軟件的具體安裝方法不再累述,安裝完成后,打開Anaconda Navigator后如下圖顯示。
我們的編程測試環(huán)境將使用Jupyter Notebook,點擊“Launch”登錄后將如下圖顯示
建立一個項目文件夾,然后新建一個Python 3的項目,我們就可以愉快的編程了。
案例1:繪制一條線
import matplotlib.pyplot as plt #導入pyplot
import numpy as np #導入numpy
# np.linspace為numpy的等差數(shù)列函數(shù),形成一個0到100之間,共50個元素的函數(shù)
x=np.linspace(0,100,50)
y=2*x+1 #賦值運算
#最重要的一步,plot用于繪制線條或標記的軸,可以指定線性,顏色等
plt.plot(x,y) #默認直接繪制
plt.show()
案例2:繪制一條特殊的線
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0,100,20)
#print (x)
y=2*x+1
#與案例1中不同的是增加很多參數(shù),如color(顏色), linewidth(線寬), linestyle(線性), marker(標記)
plt.plot(x,y,color='red',linewidth=1.0,linestyle='-',marker='o')
plt.show()
案例3:繪制餅圖
import matplotlib.pyplot as plt
labels='Frogs', 'Hogs', 'Dogs', 'Logs' #定義標簽
sizes=[15, 30, 45, 10] #定義餅圖的大小
explode=(0, 0.1, 0, 0) #定義切片
fig1, ax1 = plt.subplots() #導入餅圖
#定義餅圖的樣式,此示例將 startangle設置為90 ,以便將所有對象逆時針旋轉(zhuǎn)90度,定義了數(shù)
#據(jù)顯示格式以小數(shù)顯示,帶陰影
ax1.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',
shadow=True, startangle=90)
ax1.axis('equal') # 等縱橫比可確保將餅圖繪制為圓。.
plt.show()
案例4:繪制3D圖
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D #導入3D圖庫
fig = plt.figure(figsize=(12, 8)) #指定figure的大小
ax = Axes3D(fig)
# 生成X,Y
X = np.arange(-4, 4, 0.25)
Y = np.arange(-4, 4, 0.25)
X,Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
# height value
Z = np.sin(R)
# 繪圖
# rstride(row)和cstride(column)表示的是行列的跨度
ax.plot_surface(X, Y, Z,
rstride=1, # 行的跨度
cstride=1, # 列的跨度
cmap=plt.get_cmap('rainbow') # 顏色映射樣式設置
)
# offset 表示距離zdir的軸距離
ax.contourf(X, Y, Z, zdir='z', offest=-2, cmap='rainbow')
ax.set_zlim(-2, 2)
plt.show()
以上代碼已測試通過,感興趣的朋友可以進行測試。更多Matplotlib的應用可以參考官網(wǎng)詳細資料介紹。
作者:老羅,具有10年工業(yè)自動化領(lǐng)域的SCADA、DCS、PLC等項目實施經(jīng)驗,熟悉石化行業(yè)、油田數(shù)字化行業(yè),熟悉多個品牌PLC、HMI、SCADA、數(shù)據(jù)庫等。
共有訪客發(fā)表了評論
網(wǎng)友評論