本節主要講解的是matplotlib的使用,
文章目錄
- 1. 利用matplotlib繪制折線圖
- 2. 利用matplotlib繪制散點圖
- 3. 利用matplotlib繪制條形圖
- 4. 利用matplotlib繪制直方圖
- 5. 如果想繪制更好看的圖
matplotlib是最流行的Python底層繪圖庫,主要做資料可視化圖表,名字取材于MATLAB,模仿MATLAB構建,
1. 利用matplotlib繪制折線圖

根據上面的方法我們對如下資料進行處理:
假設一天中每隔兩個小時(range(2,26,2))的氣溫(℃)分別是[15,13,14.5,17,20,25,26,26,27,22,18,15]

但是目前存在以下幾個問題:
- 設定圖片大小(想要一個高清無碼大圖)
- 保存到本地
- 描述資訊,比如x軸和y軸表示什么,這個圖表示什么
- 調整x或者y的刻度的間距
- 線條的樣式(比如顏色,透明度等)
- 標記出特殊的點(比如告訴別人最高點和最低點在哪里)
- 給圖片添加一個水印(防偽,防止盜用)
對于設定圖片大小等問題,可以進行以下操作:

對于調整X、Y軸刻度,可以進行以下操作:

那么問題來了:
如果串列a表示10點到12點的每一分鐘的氣溫,如何繪制折線圖觀察每分鐘氣溫的變化情況?
a= [random.randint(20,35) for i in range(120)]

繪制結果如下所示:

中文在matplotlib中顯示是亂碼的,為了解決這個問題,我們可以進行如下操作:


這樣,我們的結果就會好看多了:

對于設定坐標軸lable,可以進行如下操作:





2. 利用matplotlib繪制散點圖

散點圖的操作與折線圖差不多
技術要點:plt.scatter(x,y)
散點圖的作用:
不同條件(維度)之間的內在關聯關系
觀察資料的離散聚合程度
3. 利用matplotlib繪制條形圖
假設你獲取到了2017年內地電影票房前20的電影(串列a)和電影票房資料(串列b),那么如何更加直觀的展示該資料?
a = [“戰狼2”,“速度與激情8”,“功夫瑜伽”,“西游伏妖篇”,“變形金剛5:最后的騎士”,“摔跤吧!爸爸”,“加勒比海盜5:死無對證”,“金剛:骷髏島”,“極限特工:終極回歸”,“生化危機6:終章”,“乘風破浪”,“神偷奶爸3”,“智取威虎山”,“大鬧天竺”,“金剛狼3:殊死一戰”,“蜘蛛俠:英雄歸來”,“悟空傳”,“銀河護衛隊2”,“情圣”,“新木乃伊”,]
b=[56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23] 單位:億


假設你知道了串列a中電影分別在2017-09-14(b_14), 2017-09-15(b_15), 2017-09-16(b_16)三天的票房,為了展示串列中電影本身的票房以及同其他電影的資料對比情況,應該如何更加直觀的呈現該資料?
a = [“猩球崛起3:終極之戰”,“敦刻爾克”,“蜘蛛俠:英雄歸來”,“戰狼2”]
b_16 = [15746,312,4497,319]
b_15 = [12357,156,2045,168]
b_14 = [2358,399,2358,362]


條形圖的作用
數量統計
頻率統計(市場飽和度)
4. 利用matplotlib繪制直方圖
假設你獲取了250部電影的時長(串列a中),希望統計出這些電影時長的分布狀態(比如時長為100分鐘到120分鐘電影的數量,出現的頻率)等資訊,你應該如何呈現這些資料?
a=[131, 98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114, 119, 128, 121, 142, 127, 130, 124, 101, 110, 116, 117, 110, 128, 128, 115, 99, 136, 126, 134, 95, 138, 117, 111,78, 132, 124, 113, 150, 110, 117, 86, 95, 144, 105, 126, 130,126, 130, 126, 116, 123, 106, 112, 138, 123, 86, 101, 99, 136,123, 117, 119, 105, 137, 123, 128, 125, 104, 109, 134, 125, 127,105, 120, 107, 129, 116, 108, 132, 103, 136, 118, 102, 120, 114,105, 115, 132, 145, 119, 121, 112, 139, 125, 138, 109, 132, 134,156, 106, 117, 127, 144, 139, 139, 119, 140, 83, 110, 102,123,107, 143, 115, 136, 118, 139, 123, 112, 118, 125, 109, 119, 133,112, 114, 122, 109, 106, 123, 116, 131, 127, 115, 118, 112, 135,115, 146, 137, 116, 103, 144, 83, 123, 111, 110, 111, 100, 154,136, 100, 118, 119, 133, 134, 106, 129, 126, 110, 111, 109, 141,120, 117, 106, 149, 122, 122, 110, 118, 127, 121, 114, 125, 126,114, 140, 103, 130, 141, 117, 106, 114, 121, 114, 133, 137, 92,121, 112, 146, 97, 137, 105, 98, 117, 112, 81, 97, 139, 113,134, 106, 144, 110, 137, 137, 111, 104, 117, 100, 111, 101, 110,105, 129, 137, 112, 120, 113, 133, 112, 83, 94, 146, 133, 101,131, 116, 111, 84, 137, 115, 122, 106, 144, 109, 123, 116, 111,111, 133, 150]



直方圖的作用
用戶的年齡分布狀態
一段時間內用戶點擊次數的分布狀態
用戶活躍時間的分布狀態
5. 如果想繪制更好看的圖
matplotlib支持的圖形是非常多的,如果有其他的需求,我們
可以查看一下url地址:
http://matplotlib.org/gallery/index.html
plotly:可視化工具中的github,相比于matplotlib更加簡單,圖形更加漂亮,同時兼容matplotlib和pandas
使用用法:簡單,照著檔案寫即可
檔案地址: https://plot.ly/python/
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/263456.html
標籤:python
上一篇:二維ICP配準
