參考來源:《Python數據科學手冊》第4章
URL:https://jakevdp.github.io/PythonDataScienceHandbook/
描述:筆記
目錄:
1、Matplotlib常用技巧
1.1 導入Matplotlib
1.2 設置繪圖樣式
1.3 用不用show()?如何顯示圖形
1.4 將圖形保存為文件
2、兩種畫圖接口
2.1 MATLAB風格接口
2.2 面向對象接口
3、簡易線形圖
3.1 調整圖形:線條的顏色與風格
3.2 調整圖形:坐標軸上下限
3.3 設置圖形標簽
4、簡易散點圖
4.1 用plt.plot畫散點圖
4.2 用plt.scatter畫散點圖
4.3 plot與scatter:效率對比
5、可視化異常處理
5.1 基本誤差線
5.2 連續誤差線
6、密度圖與等高線圖
6.1 三維視圖的可視化
7、頻次直方圖、數據區間划分和分布密度
8、配置圖例
8.1 選擇圖例顯示的元素
8.2 在圖例中顯示不同尺寸的點
8.3 同時顯示多個圖例
9、配置顏色條
9.1 配置顏色條
9.2 案例:手寫數字
10、多子圖
10.1 plt.axes:手動創建子圖
10.2 plt.subplot:簡易網格子圖
10.3 plt.subplots:用一行代碼創建網格
10.4 plt.GridSpec:實現更復雜的排列方式
11、文字與注釋
11.1 plt.text()
11.2 坐標變換與文字位置
11.3 箭頭與注釋
12、自定義坐標軸刻度
12.1 主要刻度與次要刻度
12.2 隱藏刻度與標簽
12.3 增減刻度數量
12.4 花哨的刻度格式
12.5 格式生成器與定位器小結
13、Matplotlib自定義:配置文件與樣式表
13.1 手動配置圖形
13.2 修改默認配置:rcParams
13.3 樣式表
14、用Matplotlib畫三維圖
14.1 三維數據點與線
14.2 三維等高線
14.3 線框圖和曲面圖
14.4 曲面三角剖分
15、用Basemap可視化地理數據
15.1 地圖投影
15.2 畫一個地圖背景
15.3 在地圖上畫數據
15.4 案例:美國加州城市數據
15.5 案例:地表溫度數據
16、用Seaborn做數據可視化
16.1 Seaborn與Matplotlib
16.2 Seanborn圖形介紹
16.3 案例:探索馬拉松比賽成績數據
17、參考資料
17.1 Matplotlib資源
17.2 其他Python畫圖程序庫
1、Matplotlib常用技巧
1.1 導入Matplotlib

1.2 設置繪圖樣式
1.3 用不用show()?如何顯示圖形
三種開發環境:腳本、IPython shell 和 IPython Notebook
在腳本中,使用matplotlib時,顯示圖形必須用plt.show(),plt.show()會啟動一個事件循環(event loop),並找到所有當前可用的圖形對象,然后打開一個或多個交互式窗口顯示圖形,需要注意的是,一個python會話中只能使用一次plt.show(),因此通常都把它放在腳本的最后。
在ipython shell中,需要啟動matplotlib模式,通過魔法方式%matplotlib啟動。不再需要使用plt.show()。可通過plt.draw()強制更新。
在ipython notebook中,需要啟動matplotlib模式。

1.4 將圖形保存為文件



2、兩種畫圖接口
2.1 MATLAB風格接口
這種接口最重要的特性是有狀態的(stateful):它會持續跟蹤“當前的”圖形和坐標軸,所有plt命令都可以應用,可用plt.gcf()獲取當前圖形,plt.gca()獲取當前坐標軸。
缺點:不方便切換子圖。


2.2 面向對象接口
面向對象接口不再受到當前“活動”圖形或坐標軸的限制,而變成了顯式的Figure和Axes的方法。

畫比較復雜的圖形時,對面對象方法會更方便。
3、簡易線形圖
3.1 調整圖形:線條的顏色與風格


3.2 調整圖形:坐標軸上下限





3.3 設置圖形標簽



matplotlib陷阱

4、簡易散點圖
4.1 用plt.plot畫散點圖



4.2 用plt.scatter畫散點圖


4.3 plot與scatter:效率對比

5、可視化異常處理
5.1 基本誤差線

5.2 連續誤差線
通過plt.plot與plt.fill_between來解決顯示連續變量的誤差。傳入plt.fill_between的上下限參數畫圖,與通過plt.plot畫的圖形做對比,從而可視化出誤差。
6、密度圖與等高線圖
在二維圖上用等高線圖或者彩色圖來表示三維數據。
用plt.contour畫等高線圖、用plt.contourf畫帶有填充色的等高線圖(filled contourplot)的色彩、用plt.imshow顯示圖形。
6.1 三維視圖的可視化
等高線圖可以用plt.contour函數來創建,它需要三個參數:x軸、y軸、z軸三個坐標軸的網格數據。x軸和y軸表示圖形中的位置,而z軸將通過等高線的等級來表示。

當圖形中只使用一種顏色時,默認使用虛線表示負數,使用實線表示正數。

matplotlib的配色方案可以在ipython中用tab鍵瀏覽plt.cm模塊對應的信息。


通過顏色條分析:黑色區域是波峰(peak),紅色區域是波谷(valley)。
說明:顏色的改變是一個離散而非連續的過程,所以看起來不那么干凈


7、頻次直方圖、數據區間划分和分布密度
7.1 頻次直方圖


以上為將一維數組分為區間創建一維頻次直方圖。
7.2 二維頻次直方圖與數據區間划分
將二維數組按照二維區間進行切分,來創建二維頻次直方圖。

7.3 核密度估計
核密度估計(kernel density estimation,KDE),評估多維數據分布密度的常用方法。

8、配置圖例
圖例通過離散的標簽表示離散的圖形元素。
8.1 選擇圖例顯示的元素
想在可視化圖形中使用圖例,可以為不同的圖形元素分配標簽。



圖例會默認顯示所有元素的標簽,但是會忽略那些不帶標簽的元素


8.2 同時顯示多個圖例
通過從頭開始創建一個新的圖例藝術家對象(legend artist),然后用底層的(lower-level)ax.add_artist()方法在圖上添加第二個圖例。


9、配置顏色條
對於圖形中由彩色的點、線、面構成的連續標簽,用顏色條來表示的效果比較好。
在matplotlib中,顏色條是一個獨立的坐標軸,可以指明圖形中顏色的含義。

9.1 配置顏色條

可以將顏色條本身僅看做是一個plt.Axes實例,可以適用關於坐標軸和刻度值的格式配置(如plt.clim())。
10、多子圖
10.1 plt.axes:手動創建子圖
函數plt.axes(),默認創建一個標准的坐標軸,填滿整張圖。
它有一個可選參數,有圖形坐標系統的四個值構成,分別是表示圖形坐標系統的[bottom,left,width,height](底坐標,左坐標,寬度,高度),數值的取值范圍是左下角(原點)為0,右上角為1。


10.2 plt.subplot:簡易網格子圖


10.3 plt.subplots:用一行代碼創建網格



plt.subplots()與python索引從0開始的習慣保持一致。
參數ha是水平對齊方式(horizonal alignment)的縮寫,可為left,right,cente
10.4 plt.GridSpec:實現更復雜的排列方式


11、文字與注釋
11.1 plt.text()
通過plt.text()/ax.text()函數手動添加注釋,它們可以在具體的x/y坐標點上放文字。
plt.text()方法需要一個x軸坐標、一個y軸坐標、一個字符串和一些可選參數,比如文字的顏色、字號、風格、對其方式以及其它文字屬性。
11.2 坐標變換與文字位置


11.3 箭頭與注釋
函數plt.arrow()創建出的箭頭是SVG向量圖對象,會隨着圖形分辨率的變化而變化。
函數plt.annotate(),即可以創建文字,也可以創建箭頭(箭頭能夠靈活的配置)

12、自定義坐標軸刻度
每個axes都有xaxis和yaxis屬性,每個屬性包含構成坐標軸的線條、刻度和標簽的全部屬性。
12.1 主要刻度與次要刻度 
12.2 隱藏刻度與標簽


12.3 增減刻度數量

12.4 花哨的刻度格式



12.5 格式生成器與定位器小結
| 定位器類 | 描述 |
| plt.NullLocator | 無刻度 |
| plt.FixedLocator | 刻度位置固定 |
| plt.IndexLocator | 用索引作為定位器(如x=range(len(y))) |
| plt.LinearLocator | 從min到max均勻分布刻度 |
| plt.LogLocator | 從min到max按對數分布刻度 |
| plt.MultipleLocator | 刻度和范圍都是基數(base)的倍數 |
| plt.MaxNLocator | 為最大刻度找到最優位置 |
| plt.AutoLocator | (默認)以MaxNLocator進行簡單配置 |
| plt.AutoMinorLocator | 次要刻度的定位器 |
| 格式生成器類 | 描述 |
| plt.NullFormatter | 刻度上無標簽 |
| plt.IndexFormatter | 將一組標簽設置為字符串 |
| plt.FixedFormatter | 手動為刻度設置標簽 |
| plt.FuncFormatter | 用自定義函數設置標簽 |
| plt.FormatStrFormatter | 為每個刻度值設置字符串格式 |
| plt.ScalarFormatter | (默認)為標量值設置標簽 |
| plt.LogFormatter | 對數坐標軸的默認格式生成器 |
13、Matplotlib自定義:配置文件與樣式表
13.1 手動配置圖形
13.2 修改默認配置:rcParams
13.3 樣式表


14、用Matplotlib畫三維圖


14.1 三維數據點與線



14.2 三維等高線


14.3 線框圖和曲面圖






14.4 曲面三角剖分





15、用Basemap可視化地理數據
15.1 地圖投影
15.2 畫一個地圖背景
15.3 在地圖上畫數據
15.4 案例:美國加州城市數據
15.5 案例:地表溫度數據
16、用Seaborn做數據可視化
16.1 Seaborn與Matplotlib


16.2 Seanborn圖形介紹













