這期內(nèi)容當中小編將會給大家?guī)碛嘘P怎么在Python中使用Matplotlib實現(xiàn)一個三維數(shù)據(jù)的散點圖,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷、網(wǎng)站重做改版、東川網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、HTML5、商城開發(fā)、集團公司官網(wǎng)建設、外貿(mào)網(wǎng)站建設、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為東川等各大城市提供網(wǎng)站開發(fā)制作服務。python是什么意思Python是一種跨平臺的、具有解釋性、編譯性、互動性和面向?qū)ο蟮哪_本語言,其最初的設計是用于編寫自動化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發(fā)獨立的項目和大型項目。
實現(xiàn)過程
其中就有我們需要參考的部分,也就是mplot3d example code : 2dcollections3d_demo.py。下面貼出其中的代碼段。
from mpl_toolkits.mplot3d import Axes3D import numpy as np import matplotlib.pyplot as plt fig = plt.figure() ax = fig.gca(projection='3d') # Plot a sin curve using the x and y axes. x = np.linspace(0, 1, 100) y = np.sin(x * 2 * np.pi) / 2 + 0.5 ax.plot(x, y, zs=0, zdir='z', label='curve in (x,y)') # Plot scatterplot data (20 2D points per colour) on the x and z axes. colors = ('r', 'g', 'b', 'k') x = np.random.sample(20*len(colors)) y = np.random.sample(20*len(colors)) c_list = [] for c in colors: c_list.append([c]*20) # By using zdir='y', the y value of these points is fixed to the zs value 0 # and the (x,y) points are plotted on the x and z axes. ax.scatter(x, y, zs=0, zdir='y', c=c_list, label='points in (x,z)') # Make legend, set axes limits and labels ax.legend() ax.set_xlim(0, 1) ax.set_ylim(0, 1) ax.set_zlim(0, 1) ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Z') # Customize the view angle so it's easier to see that the scatter points lie # on the plane y=0 ax.view_init(elev=20., azim=-35) plt.show()
樣例的運行結(jié)果大致如下:
首先樣例的數(shù)據(jù)來自于隨機數(shù)的產(chǎn)生,但是在我實際使用的過程中,數(shù)據(jù)是需要預先存儲與導入的。因此我添加數(shù)據(jù)導入部分:
import scipy.io as sio #get the data form F:\matlab.mat data = sio.loadmat('F:\matlab.mat') m = data['data']
值得一提的是這只是我測試的數(shù)據(jù),在實際應用過程中,數(shù)據(jù)的格式是多種多樣的,所以需要做數(shù)據(jù)格式轉(zhuǎn)化的模塊。同時采用.mat數(shù)據(jù)的格式,用戶可以用matlab打開,并對數(shù)據(jù)進行更改之類的操作。采用這種方法導入后,會自動形成數(shù)組。
如上圖所示,是數(shù)據(jù)在matlab中打開的形式,因為我們需要畫出三維散點圖,會自動產(chǎn)生3×60的數(shù)組,每行代表每一維的數(shù)據(jù)。貼一張做出的Demo的成果圖:
因為我是用Time變量做為Xlabel,同時模擬數(shù)據(jù)是等時間間距進行采樣的,同時想要在不同的時間點采用不同的顏色。因此需要對ax.scatter(x,y,z,c)中的c變量進行更改,可以用變量代替,這樣就可以用個循環(huán)結(jié)構(gòu)實現(xiàn)顏色的切換功能。
for a in x: if a == 0.1: C.append('c') elif a == 0.2: C.append('r') elif a == 0.3: C.append('y') elif a == 0.4: C.append('k') ax.scatter(x, y, z, c=C)
顏色切換部分代碼如下:
import scipy.io as sio from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import numpy as np def Singleplot(): data = sio.loadmat('F:\matlab.mat') m = data['data'] x = m[0] y = m[1] z = m[2] C = [] ax = plt.subplot(111, projection='3d') for a in x: if a == 0.1: C.append('c') elif a == 0.2: C.append('r') elif a == 0.3: C.append('y') elif a == 0.4: C.append('k') ax.scatter(x, y, z, c=C) ax.set_xlabel('Time') ax.set_ylabel('Frequence') ax.set_zlabel('Amplitude') plt.show() singleplot()
上述就是小編為大家分享的怎么在Python中使用Matplotlib實現(xiàn)一個三維數(shù)據(jù)的散點圖了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
文章題目:怎么在Python中使用Matplotlib實現(xiàn)一個三維數(shù)據(jù)的散點圖-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://aaarwkj.com/article6/ccdjog.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、域名注冊、建站公司、動態(tài)網(wǎng)站、小程序開發(fā)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容