本文實例講述了Python使用matplotlib繪制三維圖形。分享給大家供大家參考,具體如下:
用二維泡泡圖表示三維數據
泡泡的坐標2維,泡泡的大小三維,使用到的函數
plt.scatter(P[:,0], P[:,1], s=S, lw = 1.5, edgecolors = C, facecolors='None')
其中P[:,0], P[:,1]為泡泡的坐標數據,s為泡泡的大小,lw為泡泡的邊線寬度,edgecolors為邊線顏色,facecolors為填充顏色
代碼及注釋
# -*- coding:utf-8 -*-import numpy as npimport matplotlib.pyplot as pltfig = plt.figure(figsize=(9,6))# 泡泡的數量n = 50size_min = 50size_max = 50*50# Ring position,rand可以產生2維數組P = np.random.rand(n,2)# Ring colors R,G,B,AC = np.ones((n,4)) * (0,0,0,1)# Alpha color channel goes from 0 (transparent) to 1 (opaque)C[:,3] = np.linspace(0,1,n)# Ring sizesS = np.linspace(size_min, size_max, n)# Scatter plotplt.scatter(P[:,0], P[:,1], s=S, lw = 1.5, edgecolors = C, facecolors='None')#range只能排列出整數,在排列小數時可以用到np.arangeplt.xlim(0,1), plt.xticks(np.arange(0,1.1,0.1))plt.ylim(0,1), plt.yticks(np.arange(0,1.1,0.1))plt.show()
運行結果:
三維螺旋線圖
需要導入三維工具mplot3d
from mpl_toolkits.mplot3d import Axes3D
導入了這個工具后才能在add_subplot時添加參數
projection='3d'
完整代碼及注釋
# -*- coding:utf-8 -*-from mpl_toolkits.mplot3d import Axes3Dimport numpy as npimport matplotlib.pyplot as pltfrom pylab import *mpl.rcParams['font.sans-serif'] = ['SimHei'] #防止中文亂碼fig = plt.figure(figsize=(9,6))#添加參數projectionax = fig.add_subplot(111,projection='3d')z = np.linspace(0, 6, 1000)r = 1x = r * np.sin(np.pi*2*z)y = r * np.cos(np.pi*2*z)#c是顏色ax.plot(x, y, z, label=u'螺旋線', c='r')ax.legend()#存成圖片,支持png格式# dpi每英寸長度的點數,畫出的三維圖是矢量圖,可以設置保存的dpiplt.savefig('3d_fig.png',dpi=200)plt.show()希望本文所述對大家Python程序設計有所幫助。
新聞熱點
疑難解答