python matplotlib模塊——繪制三維圖形、三維數據散點圖(轉)


轉自https://blog.csdn.net/eddy_zheng/article/details/48713449

python matplotlib模塊,是擴展的MATLAB的一個繪圖工具庫。他可以繪制各種圖形,可是最近最的一個小程序,得到一些三維的數據點圖,就學習了下python中的matplotlib模塊,如何繪制三維圖形。

初學者,可能對這些第三方庫安裝有一定的小問題,對於一些安裝第三方庫經驗較少的朋友,建議使用 Anaconda ,集成了很多第三庫,基本滿足大家的需求,下載地址,對應選擇python 2.7 或是 3.5 的就可以了(PS:后面的demo是python2.7):
https://www.continuum.io/downloads#windows

首先提醒注意,以下兩個函數的區別:

ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='rainbow') #繪面
1

ax.scatter(x[1000:4000],y[1000:4000],z[1000:4000],c='r') #繪點
1
1、繪制3D曲面圖
# -*- coding: utf-8 -*-
"""
Created on Thu Sep 24 16:17:13 2015

@author: Eddy_zheng
"""

from matplotlib import pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = Axes3D(fig)
X = np.arange(-4, 4, 0.25)
Y = np.arange(-4, 4, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)

# 具體函數方法可用 help(function) 查看,如:help(ax.plot_surface)
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='rainbow')

plt.show()

效果:


2、繪制三維散點圖
# -*- coding: utf-8 -*-
"""
Created on Thu Sep 24 16:37:21 2015

@author: Eddy_zheng
"""
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

data = np.random.randint(0, 255, size=[40, 40, 40])

x, y, z = data[0], data[1], data[2]
ax = plt.subplot(111, projection='3d') # 創建一個三維的繪圖工程
# 將數據點分成三部分畫,在顏色上有區分度
ax.scatter(x[:10], y[:10], z[:10], c='y') # 繪制數據點
ax.scatter(x[10:20], y[10:20], z[10:20], c='r')
ax.scatter(x[30:40], y[30:40], z[30:40], c='g')

ax.set_zlabel('Z') # 坐標軸
ax.set_ylabel('Y')
ax.set_xlabel('X')
plt.show()

效果:


上面就是學習區分了下兩個函數,當時還被小困惑了下,希望對大家有所幫助。其實里面還有好多參數設置,比如說改變顏色,包括繪制點圖的點的形狀等都是可以改變的,有需要的大家可以自己看看這個函數,學習下(help(對應的function))。
————————————————
版權聲明:本文為CSDN博主「Eddy_zheng」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/eddy_zheng/article/details/48713449


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM