Python之那些好玩的圖畫


前言:

  matplotlib 是Python最著名的繪圖庫,它提供了一整套和matlab相似的命令API,十分適合交互式地進行制圖。本文將以例子的形式分析matplot中支持的,分析中常用的幾種圖。其中包括填充圖、散點圖(scatter plots)、. 條形圖(bar plots)、等高線圖(contour plots)、 點陣圖和3D圖,下面來一起看看詳細的介紹:

一、填充圖

參考代碼

簡要分析

  這里主要是用到了fill_between函數。這個函數很好理解,就是傳入x軸的數組和需要填充的兩個y軸數組;然后傳入填充的范圍,用where=來確定填充的區域;最后可以加上填充顏色啦,透明度之類修飾的參數。

效果圖

 

二、散點圖(scatter plots)

參考代碼

 

 

 簡要分析

  1.首先介紹一下numpy 的normal函數,很明顯,這是生成正態分布的函數。這個函數接受三個參數,分別表示正態分布的平均值,標准差,還有就是生成數組的長度。很好記。

  2.然后是arctan2函數,這個函數接受兩個參數,分別表示y數組和x數組,然后返回對應的arctan(y/x)的值,結果是弧度制。

  3.接下來用到了繪制散點圖的scatter方法,首先當然是傳入x和y數組,接着s參數表示scale,即散點的大小;c參數表示color,我給他傳的是根據角度划分的一個數組,對應的就是每一個點的顏色(雖然不知道是怎么對應的,不過好像是一個根據數組內其他元素進行的相對的轉換,這里不重要了,反正相同的顏色賦一樣的值就好了);最后是alpha參數,表示點的透明度。scatter函數的高級用法可以參見官方文檔scatter函數或者help文檔,最后設置下坐標范圍就好了。

 效果圖

 

 

 三、等高線圖(contour plots)

參考代碼

 

 

 簡要分析

  1.首先要明確等高線圖是一個三維立體圖,所以我們要建立一個二元函數f,值由兩個參數控制,(注意,這兩個參數都應該是矩陣)。

  2.然后我們需要用numpy的meshgrid函數生成一個三維網格,即,x軸由第一個參數指定,y軸由第二個參數指定。並返回兩個增維后的矩陣,今后就用這兩個矩陣來生成圖像。

  3.接着就用到coutourf函數了,所謂contourf,大概就是contour fill的意思吧,只填充,不描邊;這個函數主要是接受三個參數,分別是之前生成的x、y矩陣和函數值;接着是一個整數,大概就是表示等高線的密度了,有默認值;然后就是透明度和配色問題了,cmap的配色方案這里不多研究。

  4.隨后就是contour函數了,很明顯,這個函數是用來描線的。用法可以類似的推出來,不解釋了,需要注意的是他返回一個對象,這個對象一般要保留下來個供后續的加工細化。

  5.最后就是用clabel函數來在等高線圖上表示高度了,傳入之前的那個contour對象;然后是inline屬性,這個表示是否清除數字下面的那條線,為了美觀當然是清除了,而且默認的也是1;再就是指定線的寬度了。

效果圖

 

 

 是不是很好玩呢?還想看更多精彩嗎?

  請移步此網頁:https://www.php.cn/python-tutorials-362064.html

    獲取更多精彩吧!!!

 


免責聲明!

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



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