專題第20篇:matplotlib 繪圖(中)

今天,繼續(xù)施工專題第20篇:matplotlib常用圖及功能
我們拿到一堆數(shù)據(jù),首先面臨的問題是該選用哪類圖,去可視化它們,然后才是如何繪制它們。今天這篇文章,解決該選用哪類圖去可視化的問題。
根據(jù)使用場景不同,參考前人總結(jié),一般劃分為6類圖。
1 關(guān)聯(lián)關(guān)系
用于可視化兩個或多個變量之間的相互關(guān)系,當一個變量發(fā)生變化時,另一個變量與之如何變化。

例如,邊緣直方圖:

2 排序

3 分布
例如,下圖是類型變量的直方圖,每種類型可能有幾類取值,通過不同顏色可以看出來:
4 組成


5 變化
例如,如下帶波峰波谷的時序圖:
6 偏差
例如,發(fā)散型條形圖:

更多以上每類圖的demo參考:
7 小demo:帶stacked的柱狀圖
matplotlib 具有很強的圖形表達能力,呈現(xiàn)出stacked的特點,matplotlib中只需要設(shè)置一個bottom屬性。如下例子,設(shè)置為men的數(shù)據(jù),圖表類型依然是bar圖。
import?matplotlib.pyplot?as?plt
labels?=?['1',?'2',?'3',?'4',?'5']
men?=?[20,?35,?30,?35,?27]
women?=?[25,?32,?34,?20,?25]
width?=?0.35
fig,?ax?=?plt.subplots()
ax.bar(labels,?men,?width,?label='Men')
#?bottom
ax.bar(labels,?women,?width,?bottom=men,?label='Women')
ax.legend()

在后面專題繪制更多圖形時,我們會更加深入到matplotlib繪圖的重要細節(jié)中,到那時,我們會有更多的機會了解matplotlib的繪圖API,各種屬性。
8 seaborn
接下來,我們從以上6類圖中,選取幾種典型性的圖,使用matplotlib繪制出來,基于前人已經(jīng)繪制的圖形基礎(chǔ)上,我們再做潤色,爭取消化它們的同時做出更加美觀的可視化圖。
提到matplotlib,我們就不得不提seaborn,因為我們知道m(xù)atplotlib本身已經(jīng)足夠強大,而seaborn又是基于它,開發(fā)了一些更加高層的API,讓我們繪圖更加如虎添翼,沒有必要再去重復造輪子,所以能用seaborn的地方,盡量使用它,更少的代碼,實現(xiàn)更加強大的可視化圖。
如果你喜歡我的這些施工專題文章,歡迎給我點個贊,有時真的堅持不下去了。其實,堅持原創(chuàng)410多篇,并不容易!最近半年,我周末幾乎沒休息過。


