




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第6章數(shù)據(jù)可視化《Python數(shù)據(jù)分析與應(yīng)用:從數(shù)據(jù)獲取到可視化(第2版)》學(xué)習(xí)目標(biāo)/Target
了解數(shù)據(jù)可視化,能夠說出可視化的概念以及意義
熟悉常見的圖表類型,能夠說出圖表的特點(diǎn)以及適用場景
熟悉圖表的基本組成元素,能夠說出每個(gè)組成元素的用途學(xué)習(xí)目標(biāo)/Target
掌握Matplotlib庫的基本使用,能夠使用Matplotlib庫繪制常見的圖表
掌握Seaborn庫的基本使用,能夠使用Seaborn庫繪制常見的圖表
掌握Pyecharts庫的基本使用,能夠使用Pyecharts庫繪制常見的圖表章節(jié)概述/Summary大多數(shù)情況下,我們獲取的數(shù)據(jù)是以文字或數(shù)字的形式進(jìn)行呈現(xiàn)的,這種密密麻麻的文字或數(shù)字不僅會降低數(shù)據(jù)信息的可讀性,而且無法很好地展示數(shù)據(jù)之間的關(guān)系和規(guī)律。為了解決這些問題,數(shù)據(jù)可視化應(yīng)運(yùn)而生,它可以使數(shù)據(jù)變得更直觀,更容易被人們理解與接受。Python提供了許多優(yōu)秀的用于實(shí)現(xiàn)數(shù)據(jù)可視化功能的庫,比如Matplotlib、Seaborn、Pyecharts等,本章將圍繞著這些庫的基本使用進(jìn)行詳細(xì)地講解。目錄/Contents01數(shù)據(jù)可視化概述02使用Matplotlib繪圖03使用Seaborn繪圖04使用Pyecharts繪圖05案例:電影數(shù)據(jù)分析數(shù)據(jù)可視化概述6.16.1.1
什么是數(shù)據(jù)可視化了解數(shù)據(jù)可視化,能夠說出可視化的概念以及意義學(xué)習(xí)目標(biāo)6.1.1
什么是數(shù)據(jù)可視化數(shù)據(jù)可視化是指將大型數(shù)據(jù)集中的數(shù)據(jù)以圖形、圖像的形式表示,并利用數(shù)據(jù)分析和開發(fā)工具發(fā)現(xiàn)其中未知信息的處理過程。概念6.1.1
什么是數(shù)據(jù)可視化數(shù)據(jù)可視化過程6.1.1
什么是數(shù)據(jù)可視化數(shù)據(jù)可視化旨在借助圖形化手段,清晰有效地將數(shù)據(jù)中的各種屬性和變量呈現(xiàn)出來,使用戶可以從不同的維度觀察數(shù)據(jù),從而對數(shù)據(jù)進(jìn)行更深入地觀察和分析。6.1.2
常見的圖表類型熟悉常見的圖表類型,能夠說出圖表的特點(diǎn)以及適用場景學(xué)習(xí)目標(biāo)6.1.2
常見的圖表類型圖表是一種很好地將數(shù)據(jù)直觀、形象的可視化手段。圖表概念相較于數(shù)值和文字而言,合適的圖表能夠把抽象的數(shù)據(jù)描述得更加直觀形象,可以很好地反映出數(shù)據(jù)之間的關(guān)系,數(shù)據(jù)變化的趨勢,以便于用戶對研究做出合理的推斷和預(yù)測。圖表優(yōu)勢6.1.2
常見的圖表類型常見的6種圖表直方圖折線圖柱形圖餅圖散點(diǎn)圖箱形圖6.1.2
常見的圖表類型直方圖直方圖又稱質(zhì)量分布圖,它由一系列高度不等的矩形條或線段組成,用于反映數(shù)據(jù)的分布和波動(dòng)情況。在直方圖中,一般橫軸表示若干連續(xù)的、不重疊的值范圍分段,縱軸表示每個(gè)范圍分段中統(tǒng)計(jì)的值頻率。6.1.2
常見的圖表類型折線圖折線圖是用直線段將各數(shù)據(jù)點(diǎn)連接起來而組成的圖形,以線條的方式顯示數(shù)據(jù)的變化趨勢。折線圖可以顯示隨時(shí)間(根據(jù)常用比例設(shè)置)變化的連續(xù)數(shù)據(jù),適用于顯示在相等時(shí)間間隔下的數(shù)據(jù)趨勢。6.1.2
常見的圖表類型柱形圖柱形圖是由一系列寬度相等的縱向矩形條組成的圖表,它使用矩形條的高度表示數(shù)據(jù)的多少,以此反映不同分類數(shù)據(jù)之間的差異。6.1.2
常見的圖表類型餅圖餅圖是一種用于了解數(shù)據(jù)中各分類占比情況的圖表,它使用圓表示數(shù)據(jù)的總量,組成圓的扇面表示數(shù)據(jù)各項(xiàng)占總量的比例大小。6.1.2
常見的圖表類型散點(diǎn)圖散點(diǎn)圖又稱X-Y圖,是由若干組數(shù)據(jù)點(diǎn)組成的圖表,主要用于判斷兩變量之間是否存在某種關(guān)聯(lián),或者總結(jié)數(shù)據(jù)點(diǎn)的分布模式。散點(diǎn)圖包含的數(shù)據(jù)點(diǎn)越多,比較的效果就會越好。6.1.2
常見的圖表類型箱形圖箱形圖又稱盒須圖、箱線圖,是利用數(shù)據(jù)中的5個(gè)統(tǒng)計(jì)量——最小值、第一四分位數(shù)、中位數(shù)、第三四分位數(shù)和最大值-——描述數(shù)據(jù)的一種圖表,主要用于反映一組或多組數(shù)據(jù)的對稱性、分布程度等信息,因形狀如箱子而得名。箱形圖能夠識別異常值、判斷偏態(tài)與尾重、比較數(shù)據(jù)形狀,適用于品質(zhì)管理的場景。6.1.2
常見的圖表類型總結(jié)直方圖折線圖柱形圖餅圖散點(diǎn)圖箱形圖用于反映一組或多組數(shù)據(jù)的分布情況。用于反映一組或多組數(shù)據(jù)的變化趨勢。用于比較不同分類之間的差異情況。用于顯示一組數(shù)據(jù)中每個(gè)分類的分配情況。判斷兩變量之間是否存在某種關(guān)聯(lián)。識別異常值方面有一定的優(yōu)越性。6.1.2
常見的圖表類型注意柱形圖與直方圖展示的效果非常相似,但兩者又有著一些不同,主要可以分為以下兩點(diǎn):①柱形圖用于展示離散型數(shù)據(jù)(由記錄不同類別的數(shù)目所得到的數(shù)據(jù))的分布,而直方圖用于展示連續(xù)型數(shù)據(jù)(一定區(qū)間內(nèi)連續(xù)數(shù)值所組成的數(shù)據(jù))的分布。②柱形圖的各矩形條之間具有固定的間隙,而直方圖的各矩形條之間沒有任何間隙。6.1.3
圖表的輔助元素熟悉圖表的基本組成元素,能夠說出每個(gè)組成元素的用途學(xué)習(xí)目標(biāo)6.1.3
圖表的輔助元素?cái)?shù)據(jù)可視化支持的圖表類型有很多,但大部分圖表的組成部分基本是相同的,一般包括數(shù)據(jù)系列和輔助元素,其中數(shù)據(jù)系列表示在繪圖區(qū)域中根據(jù)一組數(shù)據(jù)形成的點(diǎn)線面等圖像;輔助元素是指除了根據(jù)數(shù)據(jù)繪制的圖像之外的內(nèi)容,常用的輔助元素包括坐標(biāo)軸、標(biāo)題、圖例、網(wǎng)格、參考線、參考區(qū)域、注釋文本,它們都可以對圖形進(jìn)行補(bǔ)充說明。6.1.3
圖表的輔助元素常用的輔助元素6.1.3
圖表的輔助元素常用的輔助元素坐標(biāo)軸是用于界定圖表繪圖區(qū)的一組直線,用作度量的參照框架。坐標(biāo)軸可以細(xì)分為單坐標(biāo)軸和雙坐標(biāo)軸,單坐標(biāo)軸按不同的方向可以分為橫軸和縱軸,其中橫軸為x軸,縱軸為y軸。每個(gè)坐標(biāo)軸上包括刻度標(biāo)簽、刻度線、軸脊和坐標(biāo)軸標(biāo)簽這幾個(gè)要素。1.
坐標(biāo)軸刻度線坐標(biāo)軸標(biāo)簽刻度標(biāo)簽軸脊6.1.3
圖表的輔助元素常用的輔助元素標(biāo)題是圖表的說明性文本,用于描述圖表的大致內(nèi)容,便于用戶了解到圖表的主旨。標(biāo)題分為總標(biāo)題和副標(biāo)題,一般位于圖表上方的中心位置。2.
標(biāo)題主標(biāo)題副標(biāo)題6.1.3
圖表的輔助元素常用的輔助元素圖例是集中在圖表一角或一側(cè)的方框,主要作用是標(biāo)識為圖表中的數(shù)據(jù)系列或分類指定的圖案或顏色。圖例一般由圖例標(biāo)識和圖例項(xiàng)組成,其中圖例標(biāo)識指的是標(biāo)識各組圖形的圖案;圖例項(xiàng)是與圖例標(biāo)識對應(yīng)的名稱。3.
圖例圖例標(biāo)識圖例項(xiàng)6.1.3
圖表的輔助元素常用的輔助元素網(wǎng)格是從坐標(biāo)軸的刻度線開始、貫穿繪圖區(qū)域的若干條線,作為估算圖形所示值的標(biāo)準(zhǔn)。網(wǎng)格按不同的方向可以分為垂直網(wǎng)格和水平網(wǎng)格,這兩種網(wǎng)格既可以單獨(dú)被使用,也可以同時(shí)被使用。4.
網(wǎng)格參考線是標(biāo)記坐標(biāo)軸上特殊值的一條直線,用于為圖表中圖形的比較提供參考依據(jù),例如目標(biāo)線、平均線、預(yù)算線等。參考線按方向的不同可以分為水平參考線和垂直參考線。5.
參考線6.1.3
圖表的輔助元素常用的輔助元素參考區(qū)域是標(biāo)記坐標(biāo)軸上特殊范圍的一塊區(qū)域。6.
參考區(qū)域注釋文本表示對圖形的一些注釋和說明。注釋文本按注釋對象的不同主要分為指向型注釋文本和無指向型注釋文本,其中指向型注釋文本一般是針對圖表某一部分的特定說明,無指向型注釋文本一般是針對圖表整體的特定說明。7.
注釋文本使用Matplotlib繪圖6.26.2.1
繪制折線圖掌握繪制折線圖的方式,能夠根據(jù)需要通過pyplot模塊繪制指定樣式的折線圖學(xué)習(xí)目標(biāo)6.2.1
繪制折線圖折線圖是我們在日常生活中經(jīng)常見到的圖表,比如24小時(shí)天氣預(yù)報(bào)圖、股票實(shí)時(shí)行情圖等。折線圖具有一些子類型,包括普通折線圖和帶數(shù)據(jù)標(biāo)記的折線圖等。6.2.1
繪制折線圖基本思路1導(dǎo)入pyplot模塊完善圖表,添加輔助元素使用plot()函數(shù)繪制線條使用show()函數(shù)展示圖表2346.2.1
繪制折線圖繪制包含一條線的折線圖importnumpyasnp#1.導(dǎo)入pyplot模塊importmatplotlib.pyplotasplt#2.繪制線條x=np.arange(1,16)y_max=np.array([32,33,34,34,33,31,30,29,30,29,26,23,21,25,31])plt.plot(x,y_max)#3.展示圖表plt.show()暫時(shí)沒添加輔助元素6.2.1
繪制折線圖繪制包含兩條線的折線圖第1種方式:多次調(diào)用plot()函數(shù)繪制多條線。plt.plot(x1,y1)#繪制第一條線plt.plot(x2,y2)#繪制第二條線第2種方式:調(diào)用plot()函數(shù)時(shí)傳入多組數(shù)據(jù),每組數(shù)據(jù)之間使用逗號進(jìn)行分隔。plt.plot(x1,y1,x2,y2)6.2.1
繪制折線圖繪制包含兩條線的折線圖importnumpyasnp#1.導(dǎo)入pyplot模塊importmatplotlib.pyplotasplt#2.繪制線條x=np.arange(1,16)y_max=np.array([32,33,34,34,33,31,30,29,30,29,26,23,21,25,31])y_min=np.array([19,19,20,22,
22,21,22,16,18,18,17,14,
15,16,16])plt.plot(x,y_max)plt.plot(x,y_min)#3.展示圖表plt.show()6.2.1
繪制折線圖繪制帶數(shù)據(jù)標(biāo)記的折線圖如果希望能夠在線條上方添加數(shù)據(jù)標(biāo)記,以標(biāo)注出每個(gè)日期對應(yīng)的數(shù)據(jù)點(diǎn)的位置,則可以在調(diào)用plot()函數(shù)繪制線條時(shí)將標(biāo)記取值傳遞給marker參數(shù),另外還可以傳入markersize或ms參數(shù),用于設(shè)置標(biāo)記的大小。plt.plot(x,y_max,
marker='o',ms=6)plt.plot(x,y_min,
marker='*',ms=8)6.2.1
繪制折線圖給折線圖添加輔助元素...#3.完善圖表plt.rcParams['font.sans-serif']=['SimHei']plt.title('北京未來15天的最
高氣溫和最低氣溫')plt.xlabel('日期')plt.ylabel('氣溫/攝氏度')#4.展示圖表plt.show()6.2.2
繪制柱形圖掌握繪制柱形圖的方式,能夠根據(jù)需要通過pyplot模塊繪制指定樣式的柱形圖學(xué)習(xí)目標(biāo)6.2.2
繪制柱形圖基本思路1導(dǎo)入pyplot模塊完善圖表,添加輔助元素使用bar()函數(shù)繪制柱形使用show()函數(shù)展示圖表2346.2.2
繪制柱形圖繪制包含一組柱形的柱形圖importnumpyasnp#1.導(dǎo)入pyplot模塊importmatplotlib.pyplotasplt#2.繪制柱形x=np.arange(1,6)y_a=np.array([15970,18770,22020,
26890,31150])plt.bar(x,y_a,tick_label=[
"FY2018","FY2019","FY2020",
"FY2021","FY2022"],width=0.3)#3.展示圖表plt.show()6.2.2
繪制柱形圖繪制包含兩組柱形的柱形圖...y_b=np.array([8470,12150,15650,
21310,26120])plt.bar(x,y_abar_width=0.3,
tick_label=["FY2018","FY2019",
"FY2020","FY2021","FY2022"],
width=bar_width)plt.bar(x+bar_width,y_b,
width=bar_width)#3.展示圖表plt.show()如果希望在繪制區(qū)域上再繪制另一組柱形,也就是說繪制包含兩組柱形的柱形圖,則需要再次調(diào)用bar()函數(shù),并在該函數(shù)中通過第一個(gè)參數(shù)控制另一組柱形顯示的位置。6.2.2
繪制柱形圖給柱形圖添加輔助元素#添加注釋文本defautolabel(rects):forrectinrects:
rect_height=rect.get_height()rect_x=rect.get_x()rect_width=rect.get_width()plt.text(rect_x+rect_width/2,rect_height+30,
s='{}'.format(rect_height),ha='center',va='bottom',fontsize=9)autolabel(rect_a)autolabel(rect_b)#添加圖例plt.legend([rect_a,rect_b],['品牌A','品牌B'])6.2.3
繪制直方圖掌握繪制直方圖的方式,能夠根據(jù)需要通過pyplot模塊繪制指定樣式的直方圖學(xué)習(xí)目標(biāo)6.2.3
繪制直方圖1導(dǎo)入pyplot模塊完善圖表,添加輔助元素使用hist()函數(shù)繪制圖像使用show()函數(shù)展示圖表234基本思路6.2.3
繪制直方圖繪制灰度直方圖...#2.繪制矩形np.random.seed(0)arr_random=np.random.randint(0,256,50)plt.hist(arr_random,bins=10,color='c',edgecolor='k',alpha=0.7)#3.完善圖表
plt.xlabel('灰度值')plt.ylabel('像素?cái)?shù)(個(gè))')plt.title('灰度直方圖')#4.展示圖表plt.show()直方圖經(jīng)常被應(yīng)用于圖像處理領(lǐng)域,比如灰度直方圖,它是將數(shù)字圖像中的所有像素按照灰度值的大小,統(tǒng)計(jì)其出現(xiàn)的頻率,反映一個(gè)圖像灰度值的分布情況。x軸的刻度標(biāo)簽與圖形并不是十分匹配6.2.3
繪制直方圖優(yōu)化灰度直方圖為了解決刻度標(biāo)簽與圖形不匹配的問題,我們需要先獲取每個(gè)矩形對應(yīng)的數(shù)值區(qū)間,再根據(jù)這些數(shù)值重新設(shè)置x軸上的刻度標(biāo)簽。如果希望獲取每個(gè)矩形對應(yīng)的數(shù)值區(qū)間,則可以保存hist()函數(shù)的返回值,hist()函數(shù)會返回三個(gè)值,分別是n、bins和patches,其中n是包含頻數(shù)的列表,bins是包含區(qū)間的列表,patches是包含矩形對象的容器。如果希望設(shè)置x軸的刻度標(biāo)簽,則可以通過xticks()函數(shù)實(shí)現(xiàn)。6.2.3
繪制直方圖優(yōu)化灰度直方圖...#2.繪制矩形np.random.seed(0)arr_random=np.random.randint(0,
256,50)nums,bins,patches=plt.hist(arr_random,bins=10,color='c',
edgecolor='k',alpha=0.7)#3.完善圖表
plt.xlabel('灰度值')plt.ylabel('像素?cái)?shù)(個(gè))')plt.title('灰度直方圖')plt.xticks(bins,bins)#4.展示圖表plt.show()6.2.4
繪制散點(diǎn)圖掌握繪制散點(diǎn)圖的方式,能夠根據(jù)需要通過pyplot模塊繪制指定樣式的散點(diǎn)圖學(xué)習(xí)目標(biāo)6.2.4
繪制散點(diǎn)圖1導(dǎo)入pyplot模塊完善圖表,添加輔助元素使用scatter()函數(shù)繪制點(diǎn)使用show()函數(shù)展示圖表234基本思路6.2.4
繪制散點(diǎn)圖繪制散點(diǎn)圖importnumpyasnp#1.導(dǎo)入pyplot模塊importmatplotlib.pyplotaspltplt.rcParams['font.sans-serif']=['SimHei']#2.繪制點(diǎn)house_area=np.array([225.98,...])house_price=np.array([196.63,...])plt.scatter(house_area,house_price,s=50,c='y',edgecolors='k')
#3.完善圖表
plt.title('房屋面積和房屋價(jià)格的關(guān)系')plt.xlabel('房屋面積(平方米)')plt.ylabel('房屋價(jià)格(萬元)')#4.展示圖表plt.show()6.2.4
繪制散點(diǎn)圖給散點(diǎn)圖添加網(wǎng)格線……#3.完善圖表
plt.title('房屋面積和房屋價(jià)格的關(guān)系')plt.xlabel('房屋面積(平方米)')plt.ylabel('房屋價(jià)格(萬元)')plt.grid(visible=True,linewidth=0.5)plt.xlim(house_area.min()-30,house_area.max()+30)
#4.展示圖表plt.show()如果想要知道每個(gè)圓點(diǎn)的大體位置,則可以通過grid()函數(shù)給圖表添加網(wǎng)格線,利用網(wǎng)格線便可以看出每個(gè)圓點(diǎn)對應(yīng)的房屋面積及房屋價(jià)格。使用Seaborn繪圖6.36.3.1
可視化數(shù)據(jù)的分布掌握可視化數(shù)據(jù)分布的方式,能夠根據(jù)需要通過Seaborn選擇合適的圖表展示數(shù)據(jù)的分布情況學(xué)習(xí)目標(biāo)6.3.1
可視化數(shù)據(jù)的分布Matplotlib雖然已經(jīng)是比較優(yōu)秀的繪圖庫了,但是它有一個(gè)非常令人頭疼的問題,那就是API使用起來過于復(fù)雜,其內(nèi)部有上千個(gè)函數(shù),且每個(gè)函數(shù)都有非常多的參數(shù)。Seaborn基于Matplotlib進(jìn)行了更高級的封裝,它相比Matplotlib可以輕松地畫出漂亮的圖表,使圖表的配色更加舒服,以及圖表元素的樣式更加細(xì)膩。6.3.1
可視化數(shù)據(jù)的分布在處理一組數(shù)據(jù)之前,我們通常需要提前了解這組數(shù)據(jù)具體是怎樣分布的。對于包含單變量的數(shù)據(jù)來說,采用直方圖或核密度曲線是個(gè)不錯(cuò)的選擇;對于包含雙變量的數(shù)據(jù)來說,可以通過散點(diǎn)圖、二維直方圖、核密度估計(jì)圖形等進(jìn)行展示。6.3.1
可視化數(shù)據(jù)的分布單變量數(shù)據(jù)的分布importseabornassns#加載Seaborn自帶的數(shù)據(jù)tips=sns.load_dataset('tips',data_home='data/seaborn-data')#繪制直方圖sns.displot(tips['total_bill'],bins=10)直方圖是常用的描述數(shù)據(jù)分布情況的圖表,它會先根據(jù)數(shù)據(jù)的范圍劃分一定數(shù)量的等寬間隔,這些間隔是連續(xù)且不重疊的,并統(tǒng)計(jì)每個(gè)間隔中有多少個(gè)數(shù)據(jù)。Seaborn中提供了一個(gè)displot()函數(shù),該函數(shù)默認(rèn)用于繪制一個(gè)直方圖。6.3.1
可視化數(shù)據(jù)的分布核密度估計(jì)曲線是一種統(tǒng)計(jì)圖表,它通過在每個(gè)數(shù)據(jù)點(diǎn)周圍放置一個(gè)核函數(shù),并通過調(diào)整核函數(shù)的寬度得到一個(gè)平滑的曲線。曲線的高度表示數(shù)據(jù)點(diǎn)密度的大小,曲線頂部對應(yīng)著數(shù)據(jù)點(diǎn)最多的區(qū)域,曲線底部對應(yīng)著數(shù)據(jù)點(diǎn)最少的區(qū)域。單變量數(shù)據(jù)的分布6.3.1
可視化數(shù)據(jù)的分布importseabornassnstips=sns.load_dataset('tips',data_home='data/seaborn-data')#繪制核密度估計(jì)曲線sns.displot(tips['total_bill'],kind='kde')我們可以直接使用distplot()函數(shù)繪制核密度估計(jì)曲線,只需要在使用該函數(shù)時(shí)給kind參數(shù)傳入值“kde”,就可以根據(jù)數(shù)據(jù)繪制一條核密度估計(jì)曲線。單變量數(shù)據(jù)的分布6.3.1
可視化數(shù)據(jù)的分布importseabornassnstips=sns.load_dataset('tips',data_home='data/seaborn-data')#繪制核密度估計(jì)曲線,顯示密度觀察條sns.displot(tips['total_bill'],kind='kde',rug=True)我們還可以在核密度估計(jì)曲線圖中顯示密度觀察條,只需要在調(diào)用distplot()函數(shù)時(shí)給rug參數(shù)傳入值True。單變量數(shù)據(jù)的分布6.3.1
可視化數(shù)據(jù)的分布雙變量數(shù)據(jù)的分布在Seaborn中,jointplot()函數(shù)用于繪制散點(diǎn)圖、二維直方圖、二維密度圖,以反映兩個(gè)變量之間的關(guān)系,以及每個(gè)變量在單獨(dú)坐標(biāo)軸上的分布情況。6.3.1
可視化數(shù)據(jù)的分布importseabornassnstips=sns.load_dataset('tips',data_home='data/seaborn-data')#繪制散點(diǎn)圖sns.jointplot(x='total_bill',y='tip',data=tips)雙變量數(shù)據(jù)的分布1.
繪制散點(diǎn)圖6.3.1
可視化數(shù)據(jù)的分布雙變量數(shù)據(jù)的分布2.
繪制六邊形二維直方圖六邊形二維直方圖的效果類似于蜂巢的形狀,它主要用于顯示落在六邊形區(qū)域內(nèi)的觀察值的計(jì)數(shù),適用于數(shù)量較大的數(shù)據(jù)集。6.3.1
可視化數(shù)據(jù)的分布sns.jointplot(x='total_bill',y='tip',data=tips,kind="hex")雙變量數(shù)據(jù)的分布2.
繪制六邊形二維直方圖我們可以直接通過jointplot()函數(shù)繪制六邊形二維直方圖,此時(shí)只需要給kind參數(shù)傳入值“hex",就可以繪制六邊形的二維直方圖。6.3.1
可視化數(shù)據(jù)的分布雙變量數(shù)據(jù)的分布3.
繪制二維密度圖當(dāng)散點(diǎn)圖中數(shù)據(jù)點(diǎn)過多,且重疊程度較大時(shí),若仍然希望查看數(shù)據(jù)的分布情況,則可以通過二維密度圖展示密集程度。6.3.1
可視化數(shù)據(jù)的分布tips=sns.load_dataset('tips',data_home='data/seaborn-data')#繪制二維密度圖,并畫上陰影sns.jointplot(x='total_bill',y='tip',data=tips,kind='kde',shade=True)雙變量數(shù)據(jù)的分布3.
繪制二維密度圖我們可以使用jointplot()函數(shù)繪制二維密度圖,只需要在繪制時(shí)給kind參數(shù)傳入值“kde",就可以根據(jù)數(shù)據(jù)繪制二維密度圖。6.3.2
用分類數(shù)據(jù)繪圖掌握可視化數(shù)據(jù)分布的方式,能夠根據(jù)需要通過Seaborn選擇合適的圖表展示數(shù)據(jù)的分布情況學(xué)習(xí)目標(biāo)6.3.2
用分類數(shù)據(jù)繪圖分類數(shù)據(jù)是比較常見的數(shù)據(jù)類型,它是按照現(xiàn)象的某種屬性對其進(jìn)行分類或分組而得到的反映事物類型的數(shù)據(jù)。例如,企業(yè)按照經(jīng)濟(jì)性質(zhì)被分為國有、集體、私營、其他經(jīng)濟(jì)這幾類,“國有”、“集體”、“私營”和“其他經(jīng)濟(jì)”就是分類數(shù)據(jù)。6.3.2
用分類數(shù)據(jù)繪圖importseabornassnstips=sns.load_dataset('tips',data_home='data/seaborn-data')#根據(jù)分類數(shù)據(jù)繪制散點(diǎn)圖sns.stripplot(x="day",y="total_bill",data=tips)在Seaborn中,我們可以通過stripplot()函數(shù)根據(jù)分類數(shù)據(jù)繪制一個(gè)散點(diǎn)圖,用于呈現(xiàn)每個(gè)分類對應(yīng)的數(shù)據(jù)點(diǎn)的分布情況。分類數(shù)據(jù)的散點(diǎn)圖一些數(shù)據(jù)點(diǎn)之間互相重疊,不利于觀察。6.3.2
用分類數(shù)據(jù)繪圖#繪制散點(diǎn)圖,所有的數(shù)據(jù)點(diǎn)不會重疊sns.swarmplot(x="day",y="total_bill",data=tips)我們可以使用swarmplot()函數(shù)繪制一個(gè)散點(diǎn)圖,這個(gè)散點(diǎn)圖里面所有的數(shù)據(jù)點(diǎn)不會重疊,能夠清晰地展示數(shù)據(jù)的分布情況。分類數(shù)據(jù)的散點(diǎn)圖6.3.2
用分類數(shù)據(jù)繪圖分類內(nèi)的分布如果希望查看每個(gè)分類下數(shù)據(jù)的分布情況,我們可以通過箱形圖和提琴圖進(jìn)行展示,其中箱形圖可以查看數(shù)據(jù)的四分位的分布情況,小提琴圖結(jié)合了箱形圖與核密度圖的特征,用于展示多組數(shù)據(jù)的分布狀態(tài)以及概率密度。6.3.2
用分類數(shù)據(jù)繪圖分類內(nèi)的分布importseabornassnstips=sns.load_dataset('tips',data_home='data/seaborn-data')#繪制箱形圖sns.boxplot(x="day",y="total_bill",data=tips)1.
繪制箱形圖在Seaborn中,我們可以使用boxplot()函數(shù)繪制箱形圖。6.3.2
用分類數(shù)據(jù)繪圖分類內(nèi)的分布2.
繪制小提琴圖小提琴圖是箱式圖與核密度圖的結(jié)合,它與箱型圖相比,能夠展示更多的信息。小提琴圖不僅能顯示一組數(shù)據(jù)的中位數(shù)、上四分位數(shù)、下四分位數(shù)等信息,還能顯示數(shù)據(jù)在不同數(shù)值下的概率密度,這對分析數(shù)據(jù)而言是非常有利的。6.3.2
用分類數(shù)據(jù)繪圖分類內(nèi)的分布importseabornassnstips=sns.load_dataset('tips',data_home='data/seaborn-data')#繪制小提琴圖sns.violinplot(x="day",y="total_bill",data=tips)2.
繪制小提琴圖在Seaborn中,使用violinplot()函數(shù)可以繪制小提琴圖。6.3.2
用分類數(shù)據(jù)繪圖分類內(nèi)的統(tǒng)計(jì)importseabornassnstips=sns.load_dataset('tips',data_home='data/seaborn-data')#繪制柱形圖sns.barplot(x="day",y="total_bill",data=tips)1.
繪制柱形圖在Seaborn中,可以使用barplot()函數(shù)繪制柱形圖。默認(rèn)情況下,柱形圖中每個(gè)柱形的上方會顯示誤差線,這些誤差線可以提供關(guān)于數(shù)據(jù)的不確定性或變化的信息。6.3.2
用分類數(shù)據(jù)繪圖分類內(nèi)的統(tǒng)計(jì)importseabornassnstips=sns.load_dataset('tips',data_home='data/seaborn-data')#繪制點(diǎn)圖sns.pointplot(x="day",y="total_bill",data=tips)2.
繪制點(diǎn)圖
在Seaborn中,我們可以使用pointplot()函數(shù)繪制點(diǎn)圖,點(diǎn)圖中沒有顯示完整的圖形,而是顯示點(diǎn)和誤差線,其中點(diǎn)代表平均值或其他估計(jì)值,誤差線代表代表置信區(qū)間。使用Pyecharts繪圖6.46.4.1
Pyecharts簡介熟悉Pyecharts的基本使用,能夠歸納Pyecharts繪制圖表的基本思路學(xué)習(xí)目標(biāo)6.4.1
Pyecharts簡介Pyecharts是一個(gè)用于生成Echarts圖表的開源庫,它可以幫助用戶在不了解JavaScript語言的前提下,通過自身封裝的一些方法繪制基于JavaScript實(shí)現(xiàn)的Echarts圖表,使圖表呈現(xiàn)出炫酷的效果。在使用Pyecharts庫之前,我們需要確保當(dāng)前的環(huán)境中已經(jīng)安裝了Pyecharts庫,本書使用的版本是1.9.1。6.4.1
Pyecharts簡介Pyecharts庫提供了非常豐富的圖表類型,包括基本圖表、直角坐標(biāo)系圖表、樹型圖表、地理圖表、3D圖表、組合圖表,其中基本圖表包括餅圖、雷達(dá)圖、詞云圖、漏斗圖等;直角坐標(biāo)系圖表包括折線圖、柱形圖、散點(diǎn)圖等。圖表種類6.4.1
Pyecharts簡介繪圖思路1創(chuàng)建圖表類的對象添加圖表配置項(xiàng)添加圖表用到的數(shù)據(jù)渲染圖表2346.4.1
Pyecharts簡介創(chuàng)建圖表類的對象Pyecharts庫的charts模塊中提供了很多封裝圖表功能的圖表類。類說明類說明Line折線圖WordCloud詞云圖PictorialBar象形柱形圖Map統(tǒng)計(jì)地圖Bar柱形圖/條形圖HeatMap熱力圖Pie餅圖/圓環(huán)圖Funnel漏斗圖Scatter散點(diǎn)圖/氣泡圖Gauge儀表盤Boxplot箱形圖Sankey?;鶊DRadar雷達(dá)圖Tree樹狀圖6.4.1
Pyecharts簡介所有圖表類都繼承自Base基類,它們可以使用與類同名的構(gòu)造方法實(shí)例化對象。Bar(init_opts=opts.InitOpts())上述方法中init_opts參數(shù)表示初始化配置項(xiàng),該參數(shù)需要接收一個(gè)InitOpts類的對象,該對象用于給圖表指定一些通用的屬性,比如背景顏色、畫布大小等。frompyecharts.chartsimportBarbar=Bar()創(chuàng)建一個(gè)Bar類的對象,并使用默認(rèn)大小的畫布示例創(chuàng)建圖表類的對象語法格式6.4.1
Pyecharts簡介添加圖表用到的數(shù)據(jù)每個(gè)圖表類內(nèi)部都提供了添加圖表用到的數(shù)據(jù)的方法add()或add_xx()方法,其中直角坐標(biāo)系圖表類一般可以通過add_yaxis()或add_xaxis()方法添加x軸或y軸的數(shù)據(jù)。bar.add_xaxis(["襯衫","羊毛衫","雪紡衫","褲子","高跟鞋","襪子"])bar.add_yaxis("商家A",[5000,2000,3600,1000,7500,900])6.4.1
Pyecharts簡介添加圖表配置項(xiàng)Pyecharts庫的options模塊中包含眾多關(guān)于定制圖表組件及樣式的配置項(xiàng),每個(gè)配置項(xiàng)都對應(yīng)一個(gè)類。全局配置項(xiàng)系列配置項(xiàng)6.4.1
Pyecharts簡介添加圖表配置項(xiàng)1.
全局配置項(xiàng)全局配置項(xiàng)是一些針對圖表通用屬性的配置項(xiàng),包括初始化屬性、標(biāo)題組件、圖例組件、工具箱組件、視覺映射組件、提示框組件、數(shù)據(jù)區(qū)域縮放組件。類說明類說明InitOpts初始化配置項(xiàng)VisualMapOpts視覺映射配置項(xiàng)AnimationOptsEcharts畫圖動(dòng)畫配置項(xiàng)TooltipOpts提示框配置項(xiàng)ToolBoxFeatureOpts工具箱工具配置項(xiàng)AxisLineOpts坐標(biāo)軸軸脊配置項(xiàng)ToolboxOpts工具箱配置項(xiàng)AxisTickOpts坐標(biāo)軸刻度配置項(xiàng)BrushOpts區(qū)域選擇組件配置項(xiàng)AxisPointerOpts坐標(biāo)軸指示器配置項(xiàng)TitleOpts標(biāo)題配置項(xiàng)AxisOpts坐標(biāo)軸配置項(xiàng)DataZoomOpts數(shù)據(jù)區(qū)域縮放配置項(xiàng)SingleAxisOpts單軸配置項(xiàng)LegendOpts圖例配置項(xiàng)GraphicGroup原生圖形元素組件6.4.1
Pyecharts簡介添加圖表配置項(xiàng)1.
全局配置項(xiàng)每個(gè)全局配置項(xiàng)都可以通過與類同名的構(gòu)造方法實(shí)例化對象。frompyechartsimportoptionsasoptsopts.TitleOpts(title="我是柱形圖",subtitle="我是副標(biāo)題")6.4.1
Pyecharts簡介添加圖表配置項(xiàng)1.
全局配置項(xiàng)如果想要為圖表添加全局配置項(xiàng)(InitOpts除外),則需要將全局配置項(xiàng)傳入set_global_options()方法的相應(yīng)參數(shù)。bar.set_global_opts(title_opts=opts.TitleOpts(
title="我是柱形圖",subtitle="我是副標(biāo)題"))title_opts參數(shù)表示標(biāo)題配置項(xiàng),它需要接收一個(gè)TitleOpts類的對象。6.4.1
Pyecharts簡介添加圖表配置項(xiàng)1.
全局配置項(xiàng)通過比對參數(shù)名和類名可以發(fā)現(xiàn),參數(shù)名與類名的單詞都是一樣的,只不過參數(shù)名里面的單詞都是小寫的,單詞之間使用下畫線進(jìn)行連接。我們可以參照參數(shù)名與類名的規(guī)律,在設(shè)置全局配置項(xiàng)時(shí)快速找到相應(yīng)的參數(shù)。6.4.1
Pyecharts簡介添加圖表配置項(xiàng)2.
系列配置項(xiàng)系列配置項(xiàng)是一些針對圖表特定元素屬性的配置項(xiàng),包括圖元樣式、文本樣式、標(biāo)簽、線條樣式、標(biāo)記樣式、填充樣式等。類說明類說明ItemStyleOpts圖元樣式配置項(xiàng)MarkLineOpts標(biāo)記線配置項(xiàng)TextStyleOpts文本樣式配置項(xiàng)MarkAreaOpts標(biāo)記區(qū)域配置項(xiàng)LabelOpts標(biāo)簽配置項(xiàng)EffectOpts漣漪特效配置項(xiàng)LineStyleOpts線樣式配置項(xiàng)AreaStyleOpts區(qū)域填充樣式配置項(xiàng)SplitLineOpts分割線配置項(xiàng)SplitAreaOpts分隔區(qū)域配置項(xiàng)MarkPointOpts標(biāo)記點(diǎn)配置項(xiàng)GridOpts直角坐標(biāo)系網(wǎng)格配置項(xiàng)6.4.1
Pyecharts簡介添加圖表配置項(xiàng)2.
系列配置項(xiàng)每個(gè)系列配置項(xiàng)都可以通過與類同名的構(gòu)造方法實(shí)例化對象。opts.LabelOpts(position='inside',color='white',font_size=10)標(biāo)簽會被標(biāo)注于圖形的里面標(biāo)簽文本的顏色為白色標(biāo)簽文本的字體大小為10號6.4.1
Pyecharts簡介添加圖表配置項(xiàng)2.
系列配置項(xiàng)若需要為圖表添加系列配置項(xiàng),則需要將系列配置項(xiàng)傳入add()或add_xx()方法中。bar.add_yaxis("商家A",[5000,2000,3600,1000,7500,900],
label_opts=opts.LabelOpts(position='inside',
color='white',font_size=10))6.4.1
Pyecharts簡介渲染圖表圖表基類Base提供了渲染圖表的方法,分別是render()和render_notebook(),其中render()方法用于將圖表渲染到HTML文件,默認(rèn)為位于程序根目錄的render.html文件;render_notebook()方法用于將圖表渲染到JupyterNotebook工具中。bar.render_notebook()6.4.1
Pyecharts簡介多學(xué)一招:鏈?zhǔn)秸{(diào)用pyecharts在1.0版本中增加了鏈?zhǔn)秸{(diào)用的功能。鏈?zhǔn)秸{(diào)用是指簡化同一對象多次訪問屬性或調(diào)用方法的編碼方式,避免多次重復(fù)使用同一個(gè)對象變量,使代碼變得簡潔、易懂。6.4.1
Pyechar
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年軟考網(wǎng)絡(luò)技術(shù)發(fā)展趨勢試題及答案
- 高考作文邏輯結(jié)構(gòu)試題與答案
- 2025兒童教育產(chǎn)品買賣合同
- 開放數(shù)據(jù)在軟件開發(fā)中的應(yīng)用試題及答案
- 數(shù)據(jù)交互技術(shù)試題及答案解析
- 制定可行性分析的年度框架計(jì)劃
- 遠(yuǎn)程團(tuán)隊(duì)管理的挑戰(zhàn)與策略計(jì)劃
- 班級文藝匯演與參與安排計(jì)劃
- 2025年計(jì)算機(jī)二級VB實(shí)務(wù)試題及答案導(dǎo)航
- 積極尋求資源整合提升工作效果計(jì)劃
- 過程管理的優(yōu)化方法試題及答案
- 地西半球的國家 復(fù)習(xí)課課件-2024-2025學(xué)年七年級地理下學(xué)期(人教版2024)
- 體系文件培訓(xùn)課件
- 路燈勞務(wù)分包合同協(xié)議
- 山東省青島市嶗山區(qū)2024-2025學(xué)年初三下學(xué)年期末考試英語試題試卷含答案
- 溫州市普通高中2025屆高三第三次適應(yīng)性考試化學(xué)試題及答案
- 學(xué)校運(yùn)動(dòng)場改造方案與實(shí)施指南
- 2025年北京市東城區(qū)九年級初三一模語文試卷(含答案)
- 荊州市國土空間總體規(guī)劃(2021-2035年)
- SF-36生活質(zhì)量調(diào)查表(SF-36-含評分細(xì)則)
- 30題紀(jì)檢監(jiān)察位崗位常見面試問題含HR問題考察點(diǎn)及參考回答
評論
0/150
提交評論