91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Python中使用Matplotlib實現一個三維數據的散點圖

發布時間:2021-04-20 16:59:11 來源:億速云 閱讀:1338 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關怎么在Python中使用Matplotlib實現一個三維數據的散點圖,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

python是什么意思

Python是一種跨平臺的、具有解釋性、編譯性、互動性和面向對象的腳本語言,其最初的設計是用于編寫自動化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發獨立的項目和大型項目。

實現過程

其中就有我們需要參考的部分,也就是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()

樣例的運行結果大致如下:

怎么在Python中使用Matplotlib實現一個三維數據的散點圖

首先樣例的數據來自于隨機數的產生,但是在我實際使用的過程中,數據是需要預先存儲與導入的。因此我添加數據導入部分:

import scipy.io as sio
#get the data form F:\matlab.mat
data = sio.loadmat('F:\matlab.mat')
m = data['data']

值得一提的是這只是我測試的數據,在實際應用過程中,數據的格式是多種多樣的,所以需要做數據格式轉化的模塊。同時采用.mat數據的格式,用戶可以用matlab打開,并對數據進行更改之類的操作。采用這種方法導入后,會自動形成數組。

怎么在Python中使用Matplotlib實現一個三維數據的散點圖

如上圖所示,是數據在matlab中打開的形式,因為我們需要畫出三維散點圖,會自動產生3×60的數組,每行代表每一維的數據。貼一張做出的Demo的成果圖:   

怎么在Python中使用Matplotlib實現一個三維數據的散點圖

怎么在Python中使用Matplotlib實現一個三維數據的散點圖

因為我是用Time變量做為Xlabel,同時模擬數據是等時間間距進行采樣的,同時想要在不同的時間點采用不同的顏色。因此需要對ax.scatter(x,y,z,c)中的c變量進行更改,可以用變量代替,這樣就可以用個循環結構實現顏色的切換功能。

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實現一個三維數據的散點圖了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乌鲁木齐县| 阿坝县| 体育| 通江县| 廉江市| 望城县| 荣成市| 大连市| 沙田区| 浠水县| 准格尔旗| 正宁县| 无锡市| 盐津县| 大庆市| 习水县| 会东县| 图木舒克市| 宜都市| 德江县| 洛隆县| 北碚区| 呈贡县| 凤庆县| 永清县| 抚顺市| 黔西| 盐边县| 阜康市| 紫阳县| 会东县| 宜都市| 通辽市| 浪卡子县| 万源市| 青浦区| 手机| 平昌县| 乌拉特中旗| 平谷区| 淮北市|