




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第6章數(shù)據(jù)可視化《Python數(shù)據(jù)分析與應用:從數(shù)據(jù)獲取到可視化(第2版)》學習目標/Target
了解數(shù)據(jù)可視化,能夠說出可視化的概念以及意義
熟悉常見的圖表類型,能夠說出圖表的特點以及適用場景
熟悉圖表的基本組成元素,能夠說出每個組成元素的用途學習目標/Target
掌握Matplotlib庫的基本使用,能夠使用Matplotlib庫繪制常見的圖表
掌握Seaborn庫的基本使用,能夠使用Seaborn庫繪制常見的圖表
掌握Pyecharts庫的基本使用,能夠使用Pyecharts庫繪制常見的圖表章節(jié)概述/Summary大多數(shù)情況下,我們獲取的數(shù)據(jù)是以文字或數(shù)字的形式進行呈現(xiàn)的,這種密密麻麻的文字或數(shù)字不僅會降低數(shù)據(jù)信息的可讀性,而且無法很好地展示數(shù)據(jù)之間的關系和規(guī)律。為了解決這些問題,數(shù)據(jù)可視化應運而生,它可以使數(shù)據(jù)變得更直觀,更容易被人們理解與接受。Python提供了許多優(yōu)秀的用于實現(xiàn)數(shù)據(jù)可視化功能的庫,比如Matplotlib、Seaborn、Pyecharts等,本章將圍繞著這些庫的基本使用進行詳細地講解。目錄/Contents01數(shù)據(jù)可視化概述02使用Matplotlib繪圖03使用Seaborn繪圖04使用Pyecharts繪圖05案例:電影數(shù)據(jù)分析數(shù)據(jù)可視化概述6.16.1.1
什么是數(shù)據(jù)可視化了解數(shù)據(jù)可視化,能夠說出可視化的概念以及意義學習目標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ù)進行更深入地觀察和分析。6.1.2
常見的圖表類型熟悉常見的圖表類型,能夠說出圖表的特點以及適用場景學習目標6.1.2
常見的圖表類型圖表是一種很好地將數(shù)據(jù)直觀、形象的可視化手段。圖表概念相較于數(shù)值和文字而言,合適的圖表能夠把抽象的數(shù)據(jù)描述得更加直觀形象,可以很好地反映出數(shù)據(jù)之間的關系,數(shù)據(jù)變化的趨勢,以便于用戶對研究做出合理的推斷和預測。圖表優(yōu)勢6.1.2
常見的圖表類型常見的6種圖表直方圖折線圖柱形圖餅圖散點圖箱形圖6.1.2
常見的圖表類型直方圖直方圖又稱質量分布圖,它由一系列高度不等的矩形條或線段組成,用于反映數(shù)據(jù)的分布和波動情況。在直方圖中,一般橫軸表示若干連續(xù)的、不重疊的值范圍分段,縱軸表示每個范圍分段中統(tǒng)計的值頻率。6.1.2
常見的圖表類型折線圖折線圖是用直線段將各數(shù)據(jù)點連接起來而組成的圖形,以線條的方式顯示數(shù)據(jù)的變化趨勢。折線圖可以顯示隨時間(根據(jù)常用比例設置)變化的連續(xù)數(shù)據(jù),適用于顯示在相等時間間隔下的數(shù)據(jù)趨勢。6.1.2
常見的圖表類型柱形圖柱形圖是由一系列寬度相等的縱向矩形條組成的圖表,它使用矩形條的高度表示數(shù)據(jù)的多少,以此反映不同分類數(shù)據(jù)之間的差異。6.1.2
常見的圖表類型餅圖餅圖是一種用于了解數(shù)據(jù)中各分類占比情況的圖表,它使用圓表示數(shù)據(jù)的總量,組成圓的扇面表示數(shù)據(jù)各項占總量的比例大小。6.1.2
常見的圖表類型散點圖散點圖又稱X-Y圖,是由若干組數(shù)據(jù)點組成的圖表,主要用于判斷兩變量之間是否存在某種關聯(lián),或者總結數(shù)據(jù)點的分布模式。散點圖包含的數(shù)據(jù)點越多,比較的效果就會越好。6.1.2
常見的圖表類型箱形圖箱形圖又稱盒須圖、箱線圖,是利用數(shù)據(jù)中的5個統(tǒng)計量——最小值、第一四分位數(shù)、中位數(shù)、第三四分位數(shù)和最大值-——描述數(shù)據(jù)的一種圖表,主要用于反映一組或多組數(shù)據(jù)的對稱性、分布程度等信息,因形狀如箱子而得名。箱形圖能夠識別異常值、判斷偏態(tài)與尾重、比較數(shù)據(jù)形狀,適用于品質管理的場景。6.1.2
常見的圖表類型總結直方圖折線圖柱形圖餅圖散點圖箱形圖用于反映一組或多組數(shù)據(jù)的分布情況。用于反映一組或多組數(shù)據(jù)的變化趨勢。用于比較不同分類之間的差異情況。用于顯示一組數(shù)據(jù)中每個分類的分配情況。判斷兩變量之間是否存在某種關聯(lián)。識別異常值方面有一定的優(yōu)越性。6.1.2
常見的圖表類型注意柱形圖與直方圖展示的效果非常相似,但兩者又有著一些不同,主要可以分為以下兩點:①柱形圖用于展示離散型數(shù)據(jù)(由記錄不同類別的數(shù)目所得到的數(shù)據(jù))的分布,而直方圖用于展示連續(xù)型數(shù)據(jù)(一定區(qū)間內(nèi)連續(xù)數(shù)值所組成的數(shù)據(jù))的分布。②柱形圖的各矩形條之間具有固定的間隙,而直方圖的各矩形條之間沒有任何間隙。6.1.3
圖表的輔助元素熟悉圖表的基本組成元素,能夠說出每個組成元素的用途學習目標6.1.3
圖表的輔助元素數(shù)據(jù)可視化支持的圖表類型有很多,但大部分圖表的組成部分基本是相同的,一般包括數(shù)據(jù)系列和輔助元素,其中數(shù)據(jù)系列表示在繪圖區(qū)域中根據(jù)一組數(shù)據(jù)形成的點線面等圖像;輔助元素是指除了根據(jù)數(shù)據(jù)繪制的圖像之外的內(nèi)容,常用的輔助元素包括坐標軸、標題、圖例、網(wǎng)格、參考線、參考區(qū)域、注釋文本,它們都可以對圖形進行補充說明。6.1.3
圖表的輔助元素常用的輔助元素6.1.3
圖表的輔助元素常用的輔助元素坐標軸是用于界定圖表繪圖區(qū)的一組直線,用作度量的參照框架。坐標軸可以細分為單坐標軸和雙坐標軸,單坐標軸按不同的方向可以分為橫軸和縱軸,其中橫軸為x軸,縱軸為y軸。每個坐標軸上包括刻度標簽、刻度線、軸脊和坐標軸標簽這幾個要素。1.
坐標軸刻度線坐標軸標簽刻度標簽軸脊6.1.3
圖表的輔助元素常用的輔助元素標題是圖表的說明性文本,用于描述圖表的大致內(nèi)容,便于用戶了解到圖表的主旨。標題分為總標題和副標題,一般位于圖表上方的中心位置。2.
標題主標題副標題6.1.3
圖表的輔助元素常用的輔助元素圖例是集中在圖表一角或一側的方框,主要作用是標識為圖表中的數(shù)據(jù)系列或分類指定的圖案或顏色。圖例一般由圖例標識和圖例項組成,其中圖例標識指的是標識各組圖形的圖案;圖例項是與圖例標識對應的名稱。3.
圖例圖例標識圖例項6.1.3
圖表的輔助元素常用的輔助元素網(wǎng)格是從坐標軸的刻度線開始、貫穿繪圖區(qū)域的若干條線,作為估算圖形所示值的標準。網(wǎng)格按不同的方向可以分為垂直網(wǎng)格和水平網(wǎng)格,這兩種網(wǎng)格既可以單獨被使用,也可以同時被使用。4.
網(wǎng)格參考線是標記坐標軸上特殊值的一條直線,用于為圖表中圖形的比較提供參考依據(jù),例如目標線、平均線、預算線等。參考線按方向的不同可以分為水平參考線和垂直參考線。5.
參考線6.1.3
圖表的輔助元素常用的輔助元素參考區(qū)域是標記坐標軸上特殊范圍的一塊區(qū)域。6.
參考區(qū)域注釋文本表示對圖形的一些注釋和說明。注釋文本按注釋對象的不同主要分為指向型注釋文本和無指向型注釋文本,其中指向型注釋文本一般是針對圖表某一部分的特定說明,無指向型注釋文本一般是針對圖表整體的特定說明。7.
注釋文本使用Matplotlib繪圖6.26.2.1
繪制折線圖掌握繪制折線圖的方式,能夠根據(jù)需要通過pyplot模塊繪制指定樣式的折線圖學習目標6.2.1
繪制折線圖折線圖是我們在日常生活中經(jīng)常見到的圖表,比如24小時天氣預報圖、股票實時行情圖等。折線圖具有一些子類型,包括普通折線圖和帶數(shù)據(jù)標記的折線圖等。6.2.1
繪制折線圖基本思路1導入pyplot模塊完善圖表,添加輔助元素使用plot()函數(shù)繪制線條使用show()函數(shù)展示圖表2346.2.1
繪制折線圖繪制包含一條線的折線圖importnumpyasnp#1.導入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()暫時沒添加輔助元素6.2.1
繪制折線圖繪制包含兩條線的折線圖第1種方式:多次調(diào)用plot()函數(shù)繪制多條線。plt.plot(x1,y1)#繪制第一條線plt.plot(x2,y2)#繪制第二條線第2種方式:調(diào)用plot()函數(shù)時傳入多組數(shù)據(jù),每組數(shù)據(jù)之間使用逗號進行分隔。plt.plot(x1,y1,x2,y2)6.2.1
繪制折線圖繪制包含兩條線的折線圖importnumpyasnp#1.導入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ù)標記的折線圖如果希望能夠在線條上方添加數(shù)據(jù)標記,以標注出每個日期對應的數(shù)據(jù)點的位置,則可以在調(diào)用plot()函數(shù)繪制線條時將標記取值傳遞給marker參數(shù),另外還可以傳入markersize或ms參數(shù),用于設置標記的大小。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模塊繪制指定樣式的柱形圖學習目標6.2.2
繪制柱形圖基本思路1導入pyplot模塊完善圖表,添加輔助元素使用bar()函數(shù)繪制柱形使用show()函數(shù)展示圖表2346.2.2
繪制柱形圖繪制包含一組柱形的柱形圖importnumpyasnp#1.導入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ù)中通過第一個參數(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模塊繪制指定樣式的直方圖學習目標6.2.3
繪制直方圖1導入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('像素數(shù)(個)')plt.title('灰度直方圖')#4.展示圖表plt.show()直方圖經(jīng)常被應用于圖像處理領域,比如灰度直方圖,它是將數(shù)字圖像中的所有像素按照灰度值的大小,統(tǒng)計其出現(xiàn)的頻率,反映一個圖像灰度值的分布情況。x軸的刻度標簽與圖形并不是十分匹配6.2.3
繪制直方圖優(yōu)化灰度直方圖為了解決刻度標簽與圖形不匹配的問題,我們需要先獲取每個矩形對應的數(shù)值區(qū)間,再根據(jù)這些數(shù)值重新設置x軸上的刻度標簽。如果希望獲取每個矩形對應的數(shù)值區(qū)間,則可以保存hist()函數(shù)的返回值,hist()函數(shù)會返回三個值,分別是n、bins和patches,其中n是包含頻數(shù)的列表,bins是包含區(qū)間的列表,patches是包含矩形對象的容器。如果希望設置x軸的刻度標簽,則可以通過xticks()函數(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('像素數(shù)(個)')plt.title('灰度直方圖')plt.xticks(bins,bins)#4.展示圖表plt.show()6.2.4
繪制散點圖掌握繪制散點圖的方式,能夠根據(jù)需要通過pyplot模塊繪制指定樣式的散點圖學習目標6.2.4
繪制散點圖1導入pyplot模塊完善圖表,添加輔助元素使用scatter()函數(shù)繪制點使用show()函數(shù)展示圖表234基本思路6.2.4
繪制散點圖繪制散點圖importnumpyasnp#1.導入pyplot模塊importmatplotlib.pyplotaspltplt.rcParams['font.sans-serif']=['SimHei']#2.繪制點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('房屋面積和房屋價格的關系')plt.xlabel('房屋面積(平方米)')plt.ylabel('房屋價格(萬元)')#4.展示圖表plt.show()6.2.4
繪制散點圖給散點圖添加網(wǎng)格線……#3.完善圖表
plt.title('房屋面積和房屋價格的關系')plt.xlabel('房屋面積(平方米)')plt.ylabel('房屋價格(萬元)')plt.grid(visible=True,linewidth=0.5)plt.xlim(house_area.min()-30,house_area.max()+30)
#4.展示圖表plt.show()如果想要知道每個圓點的大體位置,則可以通過grid()函數(shù)給圖表添加網(wǎng)格線,利用網(wǎng)格線便可以看出每個圓點對應的房屋面積及房屋價格。使用Seaborn繪圖6.36.3.1
可視化數(shù)據(jù)的分布掌握可視化數(shù)據(jù)分布的方式,能夠根據(jù)需要通過Seaborn選擇合適的圖表展示數(shù)據(jù)的分布情況學習目標6.3.1
可視化數(shù)據(jù)的分布Matplotlib雖然已經(jīng)是比較優(yōu)秀的繪圖庫了,但是它有一個非常令人頭疼的問題,那就是API使用起來過于復雜,其內(nèi)部有上千個函數(shù),且每個函數(shù)都有非常多的參數(shù)。Seaborn基于Matplotlib進行了更高級的封裝,它相比Matplotlib可以輕松地畫出漂亮的圖表,使圖表的配色更加舒服,以及圖表元素的樣式更加細膩。6.3.1
可視化數(shù)據(jù)的分布在處理一組數(shù)據(jù)之前,我們通常需要提前了解這組數(shù)據(jù)具體是怎樣分布的。對于包含單變量的數(shù)據(jù)來說,采用直方圖或核密度曲線是個不錯的選擇;對于包含雙變量的數(shù)據(jù)來說,可以通過散點圖、二維直方圖、核密度估計圖形等進行展示。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)計每個間隔中有多少個數(shù)據(jù)。Seaborn中提供了一個displot()函數(shù),該函數(shù)默認用于繪制一個直方圖。6.3.1
可視化數(shù)據(jù)的分布核密度估計曲線是一種統(tǒng)計圖表,它通過在每個數(shù)據(jù)點周圍放置一個核函數(shù),并通過調(diào)整核函數(shù)的寬度得到一個平滑的曲線。曲線的高度表示數(shù)據(jù)點密度的大小,曲線頂部對應著數(shù)據(jù)點最多的區(qū)域,曲線底部對應著數(shù)據(jù)點最少的區(qū)域。單變量數(shù)據(jù)的分布6.3.1
可視化數(shù)據(jù)的分布importseabornassnstips=sns.load_dataset('tips',data_home='data/seaborn-data')#繪制核密度估計曲線sns.displot(tips['total_bill'],kind='kde')我們可以直接使用distplot()函數(shù)繪制核密度估計曲線,只需要在使用該函數(shù)時給kind參數(shù)傳入值“kde”,就可以根據(jù)數(shù)據(jù)繪制一條核密度估計曲線。單變量數(shù)據(jù)的分布6.3.1
可視化數(shù)據(jù)的分布importseabornassnstips=sns.load_dataset('tips',data_home='data/seaborn-data')#繪制核密度估計曲線,顯示密度觀察條sns.displot(tips['total_bill'],kind='kde',rug=True)我們還可以在核密度估計曲線圖中顯示密度觀察條,只需要在調(diào)用distplot()函數(shù)時給rug參數(shù)傳入值True。單變量數(shù)據(jù)的分布6.3.1
可視化數(shù)據(jù)的分布雙變量數(shù)據(jù)的分布在Seaborn中,jointplot()函數(shù)用于繪制散點圖、二維直方圖、二維密度圖,以反映兩個變量之間的關系,以及每個變量在單獨坐標軸上的分布情況。6.3.1
可視化數(shù)據(jù)的分布importseabornassnstips=sns.load_dataset('tips',data_home='data/seaborn-data')#繪制散點圖sns.jointplot(x='total_bill',y='tip',data=tips)雙變量數(shù)據(jù)的分布1.
繪制散點圖6.3.1
可視化數(shù)據(jù)的分布雙變量數(shù)據(jù)的分布2.
繪制六邊形二維直方圖六邊形二維直方圖的效果類似于蜂巢的形狀,它主要用于顯示落在六邊形區(qū)域內(nèi)的觀察值的計數(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ù)繪制六邊形二維直方圖,此時只需要給kind參數(shù)傳入值“hex",就可以繪制六邊形的二維直方圖。6.3.1
可視化數(shù)據(jù)的分布雙變量數(shù)據(jù)的分布3.
繪制二維密度圖當散點圖中數(shù)據(jù)點過多,且重疊程度較大時,若仍然希望查看數(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ù)繪制二維密度圖,只需要在繪制時給kind參數(shù)傳入值“kde",就可以根據(jù)數(shù)據(jù)繪制二維密度圖。6.3.2
用分類數(shù)據(jù)繪圖掌握可視化數(shù)據(jù)分布的方式,能夠根據(jù)需要通過Seaborn選擇合適的圖表展示數(shù)據(jù)的分布情況學習目標6.3.2
用分類數(shù)據(jù)繪圖分類數(shù)據(jù)是比較常見的數(shù)據(jù)類型,它是按照現(xiàn)象的某種屬性對其進行分類或分組而得到的反映事物類型的數(shù)據(jù)。例如,企業(yè)按照經(jīng)濟性質被分為國有、集體、私營、其他經(jīng)濟這幾類,“國有”、“集體”、“私營”和“其他經(jīng)濟”就是分類數(shù)據(jù)。6.3.2
用分類數(shù)據(jù)繪圖importseabornassnstips=sns.load_dataset('tips',data_home='data/seaborn-data')#根據(jù)分類數(shù)據(jù)繪制散點圖sns.stripplot(x="day",y="total_bill",data=tips)在Seaborn中,我們可以通過stripplot()函數(shù)根據(jù)分類數(shù)據(jù)繪制一個散點圖,用于呈現(xiàn)每個分類對應的數(shù)據(jù)點的分布情況。分類數(shù)據(jù)的散點圖一些數(shù)據(jù)點之間互相重疊,不利于觀察。6.3.2
用分類數(shù)據(jù)繪圖#繪制散點圖,所有的數(shù)據(jù)點不會重疊sns.swarmplot(x="day",y="total_bill",data=tips)我們可以使用swarmplot()函數(shù)繪制一個散點圖,這個散點圖里面所有的數(shù)據(jù)點不會重疊,能夠清晰地展示數(shù)據(jù)的分布情況。分類數(shù)據(jù)的散點圖6.3.2
用分類數(shù)據(jù)繪圖分類內(nèi)的分布如果希望查看每個分類下數(shù)據(jù)的分布情況,我們可以通過箱形圖和提琴圖進行展示,其中箱形圖可以查看數(shù)據(jù)的四分位的分布情況,小提琴圖結合了箱形圖與核密度圖的特征,用于展示多組數(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.
繪制小提琴圖小提琴圖是箱式圖與核密度圖的結合,它與箱型圖相比,能夠展示更多的信息。小提琴圖不僅能顯示一組數(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)計importseabornassnstips=sns.load_dataset('tips',data_home='data/seaborn-data')#繪制柱形圖sns.barplot(x="day",y="total_bill",data=tips)1.
繪制柱形圖在Seaborn中,可以使用barplot()函數(shù)繪制柱形圖。默認情況下,柱形圖中每個柱形的上方會顯示誤差線,這些誤差線可以提供關于數(shù)據(jù)的不確定性或變化的信息。6.3.2
用分類數(shù)據(jù)繪圖分類內(nèi)的統(tǒng)計importseabornassnstips=sns.load_dataset('tips',data_home='data/seaborn-data')#繪制點圖sns.pointplot(x="day",y="total_bill",data=tips)2.
繪制點圖
在Seaborn中,我們可以使用pointplot()函數(shù)繪制點圖,點圖中沒有顯示完整的圖形,而是顯示點和誤差線,其中點代表平均值或其他估計值,誤差線代表代表置信區(qū)間。使用Pyecharts繪圖6.46.4.1
Pyecharts簡介熟悉Pyecharts的基本使用,能夠歸納Pyecharts繪制圖表的基本思路學習目標6.4.1
Pyecharts簡介Pyecharts是一個用于生成Echarts圖表的開源庫,它可以幫助用戶在不了解JavaScript語言的前提下,通過自身封裝的一些方法繪制基于JavaScript實現(xiàn)的Echarts圖表,使圖表呈現(xiàn)出炫酷的效果。在使用Pyecharts庫之前,我們需要確保當前的環(huán)境中已經(jīng)安裝了Pyecharts庫,本書使用的版本是1.9.1。6.4.1
Pyecharts簡介Pyecharts庫提供了非常豐富的圖表類型,包括基本圖表、直角坐標系圖表、樹型圖表、地理圖表、3D圖表、組合圖表,其中基本圖表包括餅圖、雷達圖、詞云圖、漏斗圖等;直角坐標系圖表包括折線圖、柱形圖、散點圖等。圖表種類6.4.1
Pyecharts簡介繪圖思路1創(chuàng)建圖表類的對象添加圖表配置項添加圖表用到的數(shù)據(jù)渲染圖表2346.4.1
Pyecharts簡介創(chuàng)建圖表類的對象Pyecharts庫的charts模塊中提供了很多封裝圖表功能的圖表類。類說明類說明Line折線圖WordCloud詞云圖PictorialBar象形柱形圖Map統(tǒng)計地圖Bar柱形圖/條形圖HeatMap熱力圖Pie餅圖/圓環(huán)圖Funnel漏斗圖Scatter散點圖/氣泡圖Gauge儀表盤Boxplot箱形圖Sankey?;鶊DRadar雷達圖Tree樹狀圖6.4.1
Pyecharts簡介所有圖表類都繼承自Base基類,它們可以使用與類同名的構造方法實例化對象。Bar(init_opts=opts.InitOpts())上述方法中init_opts參數(shù)表示初始化配置項,該參數(shù)需要接收一個InitOpts類的對象,該對象用于給圖表指定一些通用的屬性,比如背景顏色、畫布大小等。frompyecharts.chartsimportBarbar=Bar()創(chuàng)建一個Bar類的對象,并使用默認大小的畫布示例創(chuàng)建圖表類的對象語法格式6.4.1
Pyecharts簡介添加圖表用到的數(shù)據(jù)每個圖表類內(nèi)部都提供了添加圖表用到的數(shù)據(jù)的方法add()或add_xx()方法,其中直角坐標系圖表類一般可以通過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簡介添加圖表配置項Pyecharts庫的options模塊中包含眾多關于定制圖表組件及樣式的配置項,每個配置項都對應一個類。全局配置項系列配置項6.4.1
Pyecharts簡介添加圖表配置項1.
全局配置項全局配置項是一些針對圖表通用屬性的配置項,包括初始化屬性、標題組件、圖例組件、工具箱組件、視覺映射組件、提示框組件、數(shù)據(jù)區(qū)域縮放組件。類說明類說明InitOpts初始化配置項VisualMapOpts視覺映射配置項AnimationOptsEcharts畫圖動畫配置項TooltipOpts提示框配置項ToolBoxFeatureOpts工具箱工具配置項AxisLineOpts坐標軸軸脊配置項ToolboxOpts工具箱配置項AxisTickOpts坐標軸刻度配置項BrushOpts區(qū)域選擇組件配置項AxisPointerOpts坐標軸指示器配置項TitleOpts標題配置項AxisOpts坐標軸配置項DataZoomOpts數(shù)據(jù)區(qū)域縮放配置項SingleAxisOpts單軸配置項LegendOpts圖例配置項GraphicGroup原生圖形元素組件6.4.1
Pyecharts簡介添加圖表配置項1.
全局配置項每個全局配置項都可以通過與類同名的構造方法實例化對象。frompyechartsimportoptionsasoptsopts.TitleOpts(title="我是柱形圖",subtitle="我是副標題")6.4.1
Pyecharts簡介添加圖表配置項1.
全局配置項如果想要為圖表添加全局配置項(InitOpts除外),則需要將全局配置項傳入set_global_options()方法的相應參數(shù)。bar.set_global_opts(title_opts=opts.TitleOpts(
title="我是柱形圖",subtitle="我是副標題"))title_opts參數(shù)表示標題配置項,它需要接收一個TitleOpts類的對象。6.4.1
Pyecharts簡介添加圖表配置項1.
全局配置項通過比對參數(shù)名和類名可以發(fā)現(xiàn),參數(shù)名與類名的單詞都是一樣的,只不過參數(shù)名里面的單詞都是小寫的,單詞之間使用下畫線進行連接。我們可以參照參數(shù)名與類名的規(guī)律,在設置全局配置項時快速找到相應的參數(shù)。6.4.1
Pyecharts簡介添加圖表配置項2.
系列配置項系列配置項是一些針對圖表特定元素屬性的配置項,包括圖元樣式、文本樣式、標簽、線條樣式、標記樣式、填充樣式等。類說明類說明ItemStyleOpts圖元樣式配置項MarkLineOpts標記線配置項TextStyleOpts文本樣式配置項MarkAreaOpts標記區(qū)域配置項LabelOpts標簽配置項EffectOpts漣漪特效配置項LineStyleOpts線樣式配置項AreaStyleOpts區(qū)域填充樣式配置項SplitLineOpts分割線配置項SplitAreaOpts分隔區(qū)域配置項MarkPointOpts標記點配置項GridOpts直角坐標系網(wǎng)格配置項6.4.1
Pyecharts簡介添加圖表配置項2.
系列配置項每個系列配置項都可以通過與類同名的構造方法實例化對象。opts.LabelOpts(position='inside',color='white',font_size=10)標簽會被標注于圖形的里面標簽文本的顏色為白色標簽文本的字體大小為10號6.4.1
Pyecharts簡介添加圖表配置項2.
系列配置項若需要為圖表添加系列配置項,則需要將系列配置項傳入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文件,默認為位于程序根目錄的render.html文件;render_notebook()方法用于將圖表渲染到JupyterNotebook工具中。bar.render_notebook()6.4.1
Pyecharts簡介多學一招:鏈式調(diào)用pyecharts在1.0版本中增加了鏈式調(diào)用的功能。鏈式調(diào)用是指簡化同一對象多次訪問屬性或調(diào)用方法的編碼方式,避免多次重復使用同一個對象變量,使代碼變得簡潔、易懂。6.4.1
Pyechar
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商業(yè)物業(yè)管理委托合同
- 乳膠漆粉刷施工合同協(xié)議書
- 高中數(shù)學新課標學案:第課時條件排列
- 門臉租戶轉讓合同范本
- 和藝人的合同范本
- 汽車分期合同范本
- 庫存打折銷售合同范本
- 《五四愛國運動和中國共產(chǎn)黨的成立》新民主主義革命的興起課件-1
- 蘇教版小學數(shù)學教材解析
- 2025版權普通許可使用合同示例
- 中職計算機選修課程設計
- 胸腔閉式引流護理-中華護理學會團體標準
- QBT 5243-2018 手包行業(yè)標準
- 內(nèi)科學課件:胰腺炎修改版
- 2024年河南省信陽市小升初數(shù)學試卷
- 《機械基礎》課程標準(中職)
- TD/T 1075-2023 光伏發(fā)電站工程項目用地控制指標(正式版)
- 倫理與禮儀 知到智慧樹網(wǎng)課答案
- 房地產(chǎn)經(jīng)紀人協(xié)理考試題庫全(附答案)
- 康養(yǎng)活動策劃方案
- 2024年三門峽職業(yè)技術學院單招職業(yè)技能測試題庫及答案解析
評論
0/150
提交評論