本文目錄一覽:
python多維數據怎麼繪製散點圖
python matplotlib模塊,是擴展的MATLAB的一個繪圖工具庫。他可以繪製各種圖形,可是最近最的一個小程序,得到一些三維的數據點圖,就學習了下python中的matplotlib模塊,如何繪製三維圖形。
初學者,可能對這些第三方庫安裝有一定的小問題,對於一些安裝第三方庫經驗較少的朋友,建議使用 Anaconda ,集成了很多第三庫,基本滿足大家的需求,下載地址,對應選擇python 2.7 或是 3.5 的就可以了(PS:後面的demo是python2.7):
首先提醒注意,以下兩個函數的區別:
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 pltimport numpy as npfrom 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()1234567891011121314151617181920212223
效果展示:
2、繪製三維的散點圖(通常用於表述一些數據點分布)
4a.mat 數據地址,找到4a.mat 下載即可:
# -*- 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 Axes3Dimport 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()123456789101112131415161718192021222324252627
效果:
上面就是學習區分了下兩個函數,當時還被小困惑了下,希望對大家有所幫助。其實裡面還有好多參數設置,比如說改變顏色,包括繪製點圖的點的形狀等都是可以改變的,有需要的大家可以自己看看這個函數,學習下(help(對應的function))。
版權聲明:本文為博主原創文章,未經博主允許不得轉載。Eddy_zheng
python中fig,ax=plt.subplots什麼意思
python中fig,ax=plt.subplots是python一種subplot可以畫出很多子圖的圖片的方法。
1、載入要用的工具包,代碼輸入import matplotlib.pyplot as plt,from skimage import data,color。
2、接著生成原始數據與圖片,定義圖片內容的代碼:
img = data.coffee()
hsv = color.rgb2hsv(img)
fig, axes = plt.subplots(2, 2, figsize=(7, 6))
ax0, ax1, ax2, ax3 = axes.ravel()
3、依次排列輸入代碼:
ax0.imshow(img)
ax1.imshow(hsv[:, :, 0], cmap=plt.cm.gray)
ax2.imshow(hsv[:, :, 1], cmap=plt.cm.gray)
ax3.imshow(hsv[:, :, 2], cmap=plt.cm.gray)
fig.tight_layout()
4、同樣,需要採用以下指令顯示圖片,輸入代碼為plt.show()。
5、最後,就可以看到呈現的效果圖,就是一種subplot可以畫出很多子圖的圖片的方法,這樣就可以解決問題了。
python plt.imshow 怎麼用
用法以既步驟:
1、給出一張圖片。
2、用python讀取圖片:img = mpimg.imread(‘a.gif’)注意:這裡的gif就是上圖,雖然是gif格式,但卻只有一幀圖片,因此是可以讀取的;img實際上是一個多維列表。把數組在轉化為圖片:plt.imshow(img):
3、img[:,:,1]是一個單通道圖像,應該是灰度圖,但是matplotlib顯示出來的,是一個偽彩色圖像。plt.imshow(img[:,:,1])。
4、還可以使用別的偽彩色方案,比如熱力圖:plt.imshow(img[:,:,1],cmap=”hot”),而上面圖中的偽彩色,可以稱為翠綠色(viridis),是matplotlib默認的著色方案。
5、用Nipy譜著色:plt.imshow(img[:,:,1],cmap=”nipy_spectral”)。
6、在圖片邊上加上色彩標籤:plt.imshow(img[:,:,1],cmap=”nipy_spectral”),plt.colorbar()。
原創文章,作者:TW54Q,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/130540.html