性吧杏吧,手机色情直播破解版,杏杏吧在线

如何使用Python腳本語(yǔ)言的繪圖庫(kù)Matplotlib

2019/7/11 1:15:16 人評(píng)論 次瀏覽 分類:PLC應(yīng)用  文章地址:http://prosperiteweb.com/tech/2610.html

本文介紹Python計(jì)算機(jī)程序設(shè)計(jì)腳本語(yǔ)言中一個(gè)重要的繪圖庫(kù)Matplotlib,它可以生成各種硬拷貝格式和跨平臺(tái)交互式環(huán)境的出版物質(zhì)量數(shù)據(jù)。Matplotlib可用于Python腳本,Python和IPython shell,Jupyter筆記本等。

對(duì)于簡(jiǎn)單的繪圖,pyplot模塊提供類似MATLAB的接口,特別是與IPython結(jié)合使用時(shí)。對(duì)于高級(jí)用戶,你可以通過(guò)面向?qū)ο蟮慕缑婊蛲ㄟ^(guò)MATLAB用戶熟悉的一組函數(shù)完全控制線型,字體屬性,軸屬性等。如下圖,你可以自由繪制常見(jiàn)圖形,3D圖形等。

坐標(biāo)軸上的特殊線條  百分比餅圖  3D圖形

關(guān)于Matplotlib如何安裝可以自行搜索,昌暉儀表建議初學(xué)者安裝Anaconda軟件,Anaconda 是一個(gè)用于科學(xué)計(jì)算的Python發(fā)行版,支持Linux,Mac,Windows,包含了眾多流行的科學(xué)計(jì)算、數(shù)據(jù)分析的Python包??梢缘卿浌倬W(wǎng)獲取軟件。根據(jù)自己的操作系統(tǒng)選擇對(duì)應(yīng)的軟件,Python版本選擇3.7。


軟件的具體安裝方法不再累述,安裝完成后,打開(kāi)Anaconda Navigator后如下圖顯示。

Anaconda Navigator登錄頁(yè)面

我們的編程測(cè)試環(huán)境將使用Jupyter Notebook,點(diǎn)擊“Launch”登錄后將如下圖顯示

Jupyter Notebook登錄頁(yè)面
建立一個(gè)項(xiàng)目文件夾,然后新建一個(gè)Python 3的項(xiàng)目,我們就可以愉快的編程了。


案例1:繪制一條線

import matplotlib.pyplot as plt #導(dǎo)入pyplot
import numpy as np #導(dǎo)入numpy
# np.linspace為numpy的等差數(shù)列函數(shù),形成一個(gè)0到100之間,共50個(gè)元素的函數(shù)
x=np.linspace(0,100,50)
y=2*x+1 #賦值運(yùn)算
#最重要的一步,plot用于繪制線條或標(biāo)記的軸,可以指定線性,顏色等
plt.plot(x,y)  #默認(rèn)直接繪制
plt.show()
Matplotlib繪一條直線

案例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(標(biāo)記)
plt.plot(x,y,color='red',linewidth=1.0,linestyle='-',marker='o')
plt.show()
Matplotlib繪制一條特殊的線

案例3:繪制餅圖
import matplotlib.pyplot as plt
labels='Frogs', 'Hogs', 'Dogs', 'Logs' #定義標(biāo)簽
sizes=[15, 30, 45, 10] #定義餅圖的大小
explode=(0, 0.1, 0, 0)  #定義切片
fig1, ax1 = plt.subplots() #導(dǎo)入餅圖
#定義餅圖的樣式,此示例將 startangle設(shè)置為90 ,以便將所有對(duì)象逆時(shí)針旋轉(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()
Matplotlib繪制餅圖

案例4:繪制3D圖

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D #導(dǎo)入3D圖庫(kù)
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')  # 顏色映射樣式設(shè)置
               )
# offset 表示距離zdir的軸距離
ax.contourf(X, Y, Z, zdir='z', offest=-2, cmap='rainbow')
ax.set_zlim(-2, 2)
plt.show()
Matplotlib繪制3D圖
以上代碼已測(cè)試通過(guò),感興趣的朋友可以進(jìn)行測(cè)試。更多Matplotlib的應(yīng)用可以參考官網(wǎng)詳細(xì)資料介紹。
作者:老羅,具有10年工業(yè)自動(dòng)化領(lǐng)域的SCADA、DCS、PLC等項(xiàng)目實(shí)施經(jīng)驗(yàn),熟悉石化行業(yè)、油田數(shù)字化行業(yè),熟悉多個(gè)品牌PLC、HMI、SCADA、數(shù)據(jù)庫(kù)等。

共有訪客發(fā)表了評(píng)論 網(wǎng)友評(píng)論

  客戶姓名:
郵箱或QQ:
驗(yàn)證碼: 看不清楚?