- Python數據可視化之matplotlib精進
- 劉大成
- 961字
- 2019-06-19 15:45:04
3.3 向直方圖中添加概率密度曲線
我們可以單獨使用直方圖來描述定量數據的分布特征。如果給直方圖添加一條概率密度曲線,就會更加明顯地刻畫定量數據的分布特征。
下面,我們就通過具體代碼來展示繪制概率密度曲線的實現方法。
1.代碼實現


2.運行結果(見圖3-3)

圖3-3
3.代碼精講
(1)通過調用“mpl.rcParams["font.sans-serif"]=["FangSong"]”語句,設置中文字體類型是“仿宋”。
(2)調用實例方法hist()繪制直方圖,同時將返回值分別賦給變量n、bins和patches。
注意:
實例方法中的參數normed用來設置y軸是否用概率密度表示數據的分布特征。在matplotlib 2.0.0及以上版本中,參數normed已經換成了density,如果同時使用這兩個參數,那么執行結果會報錯。
(3)通過調用“np.random.randn(500)”語句,我們獲得的是樣本容量為500的標準正態分布的樣本,也就是說,正態分布經過標準化后服從標準正態分布,即均值是1、標準差是0的正態分布。需要補充的是,標準化公式是,如果X~N(μ,σ2),那么經過標準化后就有
。因此,我們使用公式
,獲得樣本容量是500、均值是60、標準差是2的正態分布的樣本,即數組x。
(4)設置箱體的數量為50。
(5)通過調用“y=((1/(np.power(2*np.pi,0.5)*sigma))*np.exp(-0.5*np.power((bins-mu)/sigma,2)))”語句,計算箱體的邊界值數組bins的概率密度值。然后通過調用實例方法plot()繪制關于bins和y的折線圖,即概率密度曲線。
(6)使用實例方法text()向繪圖區域添加文本,文本內容通過“r"$...$"”格式進行文本渲染,即使用mathtext方法實現文本渲染。
(7)使用實例方法 set_xlabel()、set_ylabel()和 set_title()向繪圖區域添加中文內容,其中繪圖區域的標題內容依然是使用mathtext方法來實現的。
4.內容補充
我們不僅可以向直方圖中添加概率密度曲線,還可以在概率密度曲線的基礎上繪制積分區域,用來表示數值在指定積分區域上的取值概率,也可以理解成數值落在指定區域上的可能程度。為了闡述問題的方便,我們將與圖3-3相對應的腳本稱作原始腳本。這樣,為了繪制積分區域和添加積分表達式,我們可以向原始腳本中添加以下Python代碼。
(1)導入模塊patches中的類Polygon,這是一個可以繪制不規則多邊形的類。

(2)設置積分區域。

(3)繪制積分區域,其中,參數closed的取值表示不會將不規則多邊形設置成封閉圖形。也就是說,不規則多邊形的起點和終點是不會重合的。

(4)添加無指示注解,注解內容是積分表達式。

(5)通過向原始腳本中添加上面的Python代碼,運行修改后的腳本,可以獲得如圖3-4所示的運行結果。

圖3-4
- 公有云容器化指南:騰訊云TKE實戰與應用
- ETL數據整合與處理(Kettle)
- Microsoft SQL Server企業級平臺管理實踐
- 商業分析思維與實踐:用數據分析解決商業問題
- Python醫學數據分析入門
- Scratch 3.0 藝術進階
- Python金融實戰
- Python金融數據分析(原書第2版)
- 重復數據刪除技術:面向大數據管理的縮減技術
- 大數據治理與安全:從理論到開源實踐
- Mastering LOB Development for Silverlight 5:A Case Study in Action
- 新手學會計(2013-2014實戰升級版)
- SIEMENS數控技術應用工程師:SINUMERIK 840D-810D數控系統功能應用與維修調整教程
- 數據指標體系:構建方法與應用實踐
- 大數據時代系列(套裝9冊)