當前位置:首頁 » 編程語言 » pythonmatlabplot

pythonmatlabplot

發布時間: 2024-09-04 20:13:22

1. python實操:手把手教你用Matplotlib把數據畫出來

作者:邁克爾·貝耶勒(Michael Beyeler)

如需轉載請聯系華章 科技

如果已安裝Anaconda Python版本,就已經安裝好了可以使用的 Matplotlib。否則,可能要訪問官網並從中獲取安裝說明:

http://matplotlib.org

正如使用np作為 NumPy 的縮寫,我們將使用一些標準的縮寫來表示 Matplotlib 的引入:

在本書中,plt介面會被頻繁使用。

讓我們創建第一個繪圖。

假設想要畫出正弦函數sin(x)的線性圖。得到函數在x坐標軸上0≤x<10內所有點的值。我們將使用 NumPy 中的 linspace 函數來在x坐標軸上創建一個從0到10的線性空間,以及100個采樣點:

可以使用 NumPy 中的sin函數得到所有x點的值,並通過調用plt中的plot函數把結果畫出來:

你親自嘗試了嗎?發生了什麼嗎?有沒有什麼東西出現?

實際情況是,取決於你在哪裡運行腳本,可能無法看到任何東西。有下面幾種可能性:

1. 從.py腳本中繪圖

如果從一個腳本中運行 Matplotlib,需要加上下面的這行調用:

在腳本末尾調用這個函數,你的繪圖就會出現!

2. 從 IPython shell 中繪圖

這實際上是互動式地執行Matplotlib最方便的方式。為了讓繪圖出現,需要在啟動 IPython 後使用所謂的%matplotlib魔法命令。

接下來,無須每次調用plt.show()函數,所有的繪圖將會自動出現。

3. 從 Jupyter Notebook 中繪圖

如果你是從基於瀏覽器的 Jupyter Notebook 中看這段代碼,需要使用同樣的%matplotlib魔法命令。然而,也可以直接在notebook中嵌入圖形,這會有兩種輸出選項:

在本書中,將會使用inline選項:

現在再次嘗試一下:

上面的命令會得到下面的繪圖輸出結果:

如果想要把繪圖保存下來留作以後使用,可以直接在 IPython 或者 Jupyter Notebook 使用下面的命令保存:

僅需要確保你使用了支持的文件後綴,比如.jpg、.png、.tif、.svg、.eps或者.pdf。

作為本章最後一個測試,讓我們對外部數據集進行可視化,比如scikit-learn中的數字數據集。

為此,需要三個可視化工具:

那麼開始引入這些包吧:

第一步是載入實際數據:

如果沒記錯的話,digits應該有兩個不同的數據域:data域包含了真正的圖像數據,target域包含了圖像的標簽。相對於相信我們的記憶,我們還是應該對digits稍加 探索 。輸入它的名字,添加一個點號,然後按Tab鍵:digits.<TAB>,這個操作將向我們展示digits也包含了一些其他的域,比如一個名為images的域。images和data這兩個域,似乎簡單從形狀上就可以區分。

兩種情況中,第一維對應的都是數據集中的圖像數量。然而,data中所有像素都在一個大的向量中排列,而images保留了各個圖像8×8的空間排列。

因此,如果想要繪制出一副單獨的圖像,使用images將更加合適。首先,使用NumPy的數組切片從數據集中獲取一幅圖像:

這里是從1797個元素的數組中獲取了它的第一行數據,這行數據對應的是8×8=64個像素。下面就可以使用plt中的imshow函數來繪制這幅圖像:

上面的命令得到下面的輸出:

此外,這里也使用cmap參數指定了一個顏色映射。默認情況下,Matplotlib 使用MATLAB默認的顏色映射jet。然而,在灰度圖像的情況下,gray顏色映射更有效。

最後,可以使用plt的subplot函數繪制全部數字的樣例。subplot函數與MATLAB中的函數一樣,需要指定行數、列數以及當前的子繪圖索引(從1開始計算)。我們將使用for 循環在數據集中迭代出前十張圖像,每張圖像都分配到一個單獨的子繪圖中。

這會得到下面的輸出結果:

關於作者:Michael Beyeler,華盛頓大學神經工程和數據科學專業的博士後,主攻仿生視覺計算模型,用以為盲人植入人工視網膜(仿生眼睛),改善盲人的視覺體驗。 他的工作屬於神經科學、計算機工程、計算機視覺和機器學習的交叉領域。同時他也是多個開源項目的積極貢獻者。

本文摘編自《機器學習:使用OpenCV和Python進行智能圖像處理》,經出版方授權發布。

2. 用python對txt數據進行繪圖

  • ## 繪制該文件中的數據

  • ## 需要引入pylab庫,裡面用到的函數和MATLAB里的非常類似

  • def plotData(X, y):

  • length = len(y)

  • pylab.figure(1)

  • pylab.plot(X, y, 'rx')

  • pylab.xlabel('Population of City in 10,000s')

  • pylab.ylabel('Profit in $10,000s')

  • pylab.show()#讓繪制的圖像在屏幕上顯示出來

熱點內容
網易我的世界4d皮膚伺服器 發布:2024-11-25 07:38:36 瀏覽:943
傳奇結義腳本 發布:2024-11-25 07:31:25 瀏覽:661
linuxpppd 發布:2024-11-25 07:29:54 瀏覽:293
海宇加密 發布:2024-11-25 07:24:03 瀏覽:801
手機通話降噪功能安卓在哪裡設置 發布:2024-11-25 07:21:03 瀏覽:117
c基礎java 發布:2024-11-25 07:20:50 瀏覽:70
罪惡都市安卓內置菜單在哪裡下載 發布:2024-11-25 07:09:51 瀏覽:706
資料庫附加資料庫 發布:2024-11-25 07:08:08 瀏覽:403
支付寶支付密碼如何修改 發布:2024-11-25 06:38:47 瀏覽:923
java開發要學習什麼技術 發布:2024-11-25 06:20:28 瀏覽:1000