python matplotlib模塊——繪製三維圖形、三維數據散點圖

 

分類: 計算機視覺python

python matplotlib模塊,是擴展的MATLAB的一個繪圖工具庫。他能夠繪製各類圖形,但是最近最的一個小程序,獲得一些三維的數據點圖,就學習了下python中的matplotlib模塊,如何繪製三維圖形。小程序

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

首先提醒注意,如下兩個函數的區別:python2.7

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

ide

ax.scatter(x[1000:4000],y[1000:4000],z[1000:4000],c='r') #繪點

 一、繪製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()

效果展現: 
這裏寫圖片描述工具

二、繪製三維的散點圖(一般用於表述一些數據點分佈)

效果:學習

這裏寫圖片描述

4a.mat 數據地址,找到4a.mat 下載便可: 
http://blog.csdn.net/Eddy_zheng/article/details/50496194spa

# -*- coding: utf-8 -*-
"""
Created on Thu Sep 24 16:37:21 2015

@author: Eddy_zheng
"""

import scipy.io as sio  
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

mat1 = '4a.mat' #這是存放數據點的文件,須要它才能夠畫出來。上面有下載地址
data = sio.loadmat(mat1)
m = data['data']

x,y,z = m[0],m[1],m[2]
ax=plt.subplot(111,projection='3d') #建立一個三維的繪圖工程

#將數據點分紅三部分畫,在顏色上有區分度
ax.scatter(x[:1000],y[:1000],z[:1000],c='y') #繪製數據點
ax.scatter(x[1000:4000],y[1000:4000],z[1000:4000],c='r')
ax.scatter(x[4000:],y[4000:],z[4000:],c='g')

ax.set_zlabel('Z') #座標軸
ax.set_ylabel('Y')
ax.set_xlabel('X')
plt.show()
相關文章
相關標籤/搜索