python之畫三維圖像
阿新 • • 發佈:2018-09-08
nump lib 工具包 數組 畫出 float 生成 import code 一:利用的包:
(1)構建三維對象:mpl_toolkits.mplot3d裏面導入Axes3D
(2)數據方面操作:numpy
(3)繪圖工具包:matplotlib.pyplot
(1)構建三維對象:mpl_toolkits.mplot3d裏面導入Axes3D
(2)數據方面操作:numpy
(3)繪圖工具包:matplotlib.pyplot
二:繪圖:
1、繪圖主要分成兩種情況:
(1)一種是根據函數來繪制三維圖
(2)一種是根據三維坐標繪制散點圖
2、代碼一:繪制散點圖(加顏色,修飾什麽的省略)
import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D import csv #讀取數據 datasets=[] with open(r‘a.csv‘,‘rt‘) as f: lines=csv.reader(f) for line in lines: datasets.append(line) #獲取有用部分 datesets=datasets[1:] #轉化為array數組,便於列數據的切片獲取 datasets=np.array(datasets) #數據類型轉換一下,以防止畫圖時精度缺失報錯 X=datasets[:,-3].astype(‘float32‘) Y=datasets[:,-2].astype(‘float32‘) Z=datasets[:,-1].astype(‘float32‘) ax=plt.subplot(111,projection=‘3d‘) ax.scater(X,Y,Z) ax.set_zlabel(‘z‘) ax.set_ylabel(‘y‘) ax.set_xlabel(‘x‘) plt.show()
代碼二:以z=x+y2為例畫出三維圖:
from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import nmpy as np fig=plt.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+Y**2) Z=np.sin(R) ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=‘rainbow‘)
python之畫三維圖像