1
我使用Matplotlib在python中創建了一個可愛的3D位移矢量場,我對結果感到滿意。然而,從視覺上看,只有方向才能看到位移的大小。 Python中有沒有一種方法可以對箭頭使用色標,以便位移的大小更清晰/更明顯。使用matplotlib繪製3D顫抖功能顏色映射
這是我迄今爲止
#%% Import Libraries
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
#%% Import tsv file of results
path = 'W:/Scott/Continuous_DIC_Results/A35_L7-8_500x500x1000/'
name = 'Z=-5,200,-20,20,spm100'
results = np.loadtxt(path+name+'.tsv', dtype=float, comments='#', delimiter=None, converters=None, skiprows=1, usecols=(1,2,3,4,5,6), unpack=False, ndmin=0)
Z,Y,X = results[:,0], results[:,1],results[:,2]
dz,dy,dx = results[:,3],results[:,4],results[:,5]
#%% Plot Displacement Field
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.quiver(X, Y, Z, dx, dy, dz, # data
length=20, # arrow length
color='Tomato' # arrow colour
)
ax.set_title('3D Vector Field') # title
ax.view_init(elev=18, azim=30) # camera elevation and angle
ax.dist=8 # camera distance
plt.show()
我試過這個,但現在我得到一個ty pe錯誤:您必須首先將數組設置爲可映射。抱歉,我是Matplotlib的新用戶 –
fig = plt.figure(); ax = fig.gca(projection ='3d'); qq = ax.quiver(X,Y,Z,dx,dy,dz,mag,cmap = plt.cm.jet); ax.set_title('3D Vector Field'); ax.view_init(elevation = 18,azim = 30); ax.dist = 8; plt.colorbar(qq,cmap = plt.cm.jet); plt.show() –
我不認爲你發佈的作品在3D –