最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?Matplotlib實現(xiàn)三維數(shù)據(jù)的散點圖繪制

 更新時間:2022年04月21日 12:24:07   作者:清水寺種辣椒  
這篇文章主要為大家詳細(xì)介紹了Python?Matplotlib實現(xiàn)三維數(shù)據(jù)的散點圖繪制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

一、背景

近期項目即將開展,計劃第一步就是實現(xiàn)數(shù)據(jù)的可視化,所以先學(xué)習(xí)一下數(shù)據(jù)展示相關(guān)Demo。選用Python2.7與Matplotlib來實現(xiàn),平臺采用Pycharm,值得一提的是,Matplotlib的安裝前首先要安裝Numpy包,但是在完成Numpy的安裝之后,樓主不能在PyCharm平臺下進(jìn)行自動安裝,或者CMD中使用類似pip install Matplotlib,參考網(wǎng)上解決方案后采用直接去官網(wǎng)下載相應(yīng)的安裝包直接運行安裝到相關(guān)目錄下。在此就不贅述了。

二、 參考

Python語言相對于其他語言對新手較為友好,不用花費太多時間進(jìn)行語法學(xué)習(xí),但是在實際使用的過程中,因為Python中包含有大量的包與資源,在做項目時,對于功能的堆積,實際上Python語言對于新手并不易于理解。相對于Java與C++是需要開發(fā)者從底層搭建,可能更易于理解修改(個人意見)。

Matplotlib的gallery部分

三、實現(xiàn)過程

其中就有我們需要參考的部分,也就是mplot3d example code : 2dcollections3d_demo.py。下面貼出其中的代碼段。

"""
=======================
Plot 2D data on 3D plot
=======================

Demonstrates using ax.plot's zdir keyword to plot 2D data on
selective axes of a 3D plot.
"""

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

fig = plt.figure()
ax = fig.gca(projection='3d')

# Plot a sin curve using the x and y axes.
x = np.linspace(0, 1, 100)
y = np.sin(x * 2 * np.pi) / 2 + 0.5
ax.plot(x, y, zs=0, zdir='z', label='curve in (x,y)')

# Plot scatterplot data (20 2D points per colour) on the x and z axes.
colors = ('r', 'g', 'b', 'k')
x = np.random.sample(20*len(colors))
y = np.random.sample(20*len(colors))
c_list = []
for c in colors:
 c_list.append([c]*20)
# By using zdir='y', the y value of these points is fixed to the zs value 0
# and the (x,y) points are plotted on the x and z axes.
ax.scatter(x, y, zs=0, zdir='y', c=c_list, label='points in (x,z)')

# Make legend, set axes limits and labels
ax.legend()
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
ax.set_zlim(0, 1)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

# Customize the view angle so it's easier to see that the scatter points lie
# on the plane y=0
ax.view_init(elev=20., azim=-35)

plt.show()

樣例的運行結(jié)果大致如下:

首先樣例的數(shù)據(jù)來自于隨機數(shù)的產(chǎn)生,但是在我實際使用的過程中,數(shù)據(jù)是需要預(yù)先存儲與導(dǎo)入的。因此我添加數(shù)據(jù)導(dǎo)入部分:

import scipy.io as sio
#get the data form F:\matlab.mat
data = sio.loadmat('F:\matlab.mat')
m = data['data']

值得一提的是這只是我測試的數(shù)據(jù),在實際應(yīng)用過程中,數(shù)據(jù)的格式是多種多樣的,所以需要做數(shù)據(jù)格式轉(zhuǎn)化的模塊。同時采用.mat數(shù)據(jù)的格式,用戶可以用matlab打開,并對數(shù)據(jù)進(jìn)行更改之類的操作。采用這種方法導(dǎo)入后,會自動形成數(shù)組。

如上圖所示,是數(shù)據(jù)在matlab中打開的形式,因為我們需要畫出三維散點圖,會自動產(chǎn)生3×60的數(shù)組,每行代表每一維的數(shù)據(jù)。貼一張做出的Demo的成果圖:   

因為我是用Time變量做為Xlabel,同時模擬數(shù)據(jù)是等時間間距進(jìn)行采樣的,同時想要在不同的時間點采用不同的顏色。因此需要對ax.scatter(x,y,z,c)中的c變量進(jìn)行更改,可以用變量代替,這樣就可以用個循環(huán)結(jié)構(gòu)實現(xiàn)顏色的切換功能。

for a in x:
 if a == 0.1:
  C.append('c')
 elif a == 0.2:
  C.append('r')
 elif a == 0.3:
  C.append('y')
 elif a == 0.4:
  C.append('k')
ax.scatter(x, y, z, c=C)

顏色切換部分代碼如下:

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

def Singleplot():
 data = sio.loadmat('F:\matlab.mat')
 m = data['data']

 x = m[0]
 y = m[1]
 z = m[2]

 C = []
 ax = plt.subplot(111, projection='3d')

 for a in x:
 if a == 0.1:
  C.append('c')
 elif a == 0.2:
  C.append('r')
 elif a == 0.3:
  C.append('y')
 elif a == 0.4:
  C.append('k')

 ax.scatter(x, y, z, c=C)

 ax.set_xlabel('Time')
 ax.set_ylabel('Frequence')
 ax.set_zlabel('Amplitude')

 plt.show()

singleplot()

需要注意的是Python是屬于相對集成度較高的語言,之所以方便使用,是因為存在許多大牛已經(jīng)完成底層的內(nèi)容,開發(fā)者只需要遵從下載的包中的使用規(guī)則,因此過程中對于許多函數(shù)不懂的地方,可以用Pycharm的Go to和Declaration功能進(jìn)入申明區(qū),并且可以從中看到函數(shù)的整體介紹,使用語法以及example。因此其中的功能較為有限,如果在短時間內(nèi)用Python做項目可能對于新手來說,由上到下的形式可能較為簡易,但是對于個性化定制功能的話還有待探究。

第一篇博客。記錄一下,本周將學(xué)習(xí)Logistic回歸預(yù)測,以及部分TensorFlow的原理與Demo,卡爾曼濾波,和一點數(shù)據(jù)融合算法。該篇屬于數(shù)據(jù)可視化,還會有3D柱狀圖的繪制與顯示將會盡快整理。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python ckeditor富文本編輯器代碼實例解析

    Python ckeditor富文本編輯器代碼實例解析

    這篇文章主要介紹了Python ckeditor富文本編輯器代碼實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • Python3 偽裝瀏覽器的方法示例

    Python3 偽裝瀏覽器的方法示例

    本篇文章主要介紹了Python3 偽裝瀏覽器的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Python 16進(jìn)制與中文相互轉(zhuǎn)換的實現(xiàn)方法

    Python 16進(jìn)制與中文相互轉(zhuǎn)換的實現(xiàn)方法

    今天小編就為大家分享一篇Python 16進(jìn)制與中文相互轉(zhuǎn)換的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python 高級專用類方法的實例詳解

    Python 高級專用類方法的實例詳解

    這篇文章主要介紹了Python 高級專用類方法的實例詳解的相關(guān)資料,希望通過本文大家能夠掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-09-09
  • 從0編寫區(qū)塊鏈之用python解釋區(qū)塊鏈最基本原理

    從0編寫區(qū)塊鏈之用python解釋區(qū)塊鏈最基本原理

    人工智能和區(qū)塊鏈誕生至今已經(jīng)有了十幾年,當(dāng)這些技術(shù)出現(xiàn)時,人們都說他們會改變世界,但至今為止,這兩項技術(shù)對現(xiàn)實的影響依然有限,接下來通過本文介紹下從0編寫區(qū)塊鏈之用python解釋區(qū)塊鏈最基本原理,需要的朋友可以參考下
    2022-02-02
  • matplotlib共享坐標(biāo)軸的實現(xiàn)(X或Y坐標(biāo)軸)

    matplotlib共享坐標(biāo)軸的實現(xiàn)(X或Y坐標(biāo)軸)

    在作圖的過程中,我們經(jīng)常會遇到子圖共用坐標(biāo)軸的情況,或是共用橫軸標(biāo)軸,也可能是縱坐標(biāo)軸。本文就介紹了matplotlib共享坐標(biāo)軸,感興趣的可以了解一下
    2021-05-05
  • python數(shù)字類型和占位符詳情

    python數(shù)字類型和占位符詳情

    這篇文章主要介紹了ython數(shù)字類型和占位符詳情,文章圍繞主題展開全文詳細(xì)內(nèi)容,需要的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助
    2022-03-03
  • Python基于datetime或time模塊分別獲取當(dāng)前時間戳的方法實例

    Python基于datetime或time模塊分別獲取當(dāng)前時間戳的方法實例

    今天小編就為大家分享一篇關(guān)于Python基于datetime或time模塊分別獲取當(dāng)前時間戳的方法實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • Python 25行代碼實現(xiàn)的RSA算法詳解

    Python 25行代碼實現(xiàn)的RSA算法詳解

    這篇文章主要介紹了Python 25行代碼實現(xiàn)的RSA算法,結(jié)合實例形式詳細(xì)分析了rsa加密算法的概念、原理、相關(guān)實現(xiàn)技巧與注意事項,需要的朋友可以參考下
    2018-04-04
  • Python文本的藝術(shù)字符串處理技巧掌握

    Python文本的藝術(shù)字符串處理技巧掌握

    這篇文章主要為大家介紹了Python文本的藝術(shù)字符串處理技巧掌握,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11

最新評論

平凉市| 大安市| 兴化市| 筠连县| 太康县| 诸城市| 德江县| 耿马| 舒兰市| 滨海县| 龙海市| 淅川县| 司法| 同心县| 庐江县| 静安区| 尉犁县| 宝兴县| 葫芦岛市| 克东县| 任丘市| 静安区| 西安市| 如东县| 左权县| 安康市| 登封市| 平谷区| 民县| 麟游县| 大同市| 中牟县| 白水县| 射阳县| 景德镇市| 辰溪县| 耿马| 石景山区| 农安县| 衡山县| 盐津县|