Python數(shù)據(jù)分析與挖掘 課件 第 5 章 Python數(shù)據(jù)可視化_第1頁
Python數(shù)據(jù)分析與挖掘 課件 第 5 章 Python數(shù)據(jù)可視化_第2頁
Python數(shù)據(jù)分析與挖掘 課件 第 5 章 Python數(shù)據(jù)可視化_第3頁
Python數(shù)據(jù)分析與挖掘 課件 第 5 章 Python數(shù)據(jù)可視化_第4頁
Python數(shù)據(jù)分析與挖掘 課件 第 5 章 Python數(shù)據(jù)可視化_第5頁
已閱讀5頁,還剩114頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Python數(shù)據(jù)分析與挖掘第5章Python數(shù)據(jù)可視化本章主要內(nèi)容Matplotlib數(shù)據(jù)可視化Seaborn數(shù)據(jù)可視化pyecharts數(shù)據(jù)可視化數(shù)據(jù)可視化對數(shù)據(jù)的分析離不開數(shù)據(jù)的可視化。傳統(tǒng)的數(shù)據(jù)可視化起源于統(tǒng)計(jì)圖形學(xué),與信息圖形、視覺設(shè)計(jì)等現(xiàn)代技術(shù)密切相關(guān),其表現(xiàn)形式通常在二維空間。與之相比,大數(shù)據(jù)可視化往往更關(guān)注抽象高維的數(shù)據(jù),空間屬性較弱,與所針對的數(shù)據(jù)類型密切相關(guān)。數(shù)據(jù)可視化(1)時(shí)空數(shù)據(jù)可視化時(shí)空數(shù)據(jù)是指帶有地理位置與時(shí)間標(biāo)簽的數(shù)據(jù),因此,時(shí)變數(shù)據(jù)和地理信息數(shù)據(jù)的可視化非常重要。(2)層次與網(wǎng)絡(luò)結(jié)構(gòu)數(shù)據(jù)可視化網(wǎng)絡(luò)關(guān)聯(lián)關(guān)系在大數(shù)據(jù)中是一種常見的關(guān)系。網(wǎng)絡(luò)之間的連接、層次結(jié)構(gòu)、拓?fù)浣Y(jié)構(gòu)等都屬于這種類型。(3)文本和跨媒體數(shù)據(jù)可視化文本信息是大數(shù)據(jù)時(shí)代非結(jié)構(gòu)化數(shù)據(jù)類型的典型代表,是互聯(lián)網(wǎng)中最主要的信息類型。這類數(shù)據(jù)的可視化方法主要有標(biāo)簽云、引入時(shí)間軸的河流圖等方法。(4)多變量數(shù)據(jù)可視化多變量的高維數(shù)據(jù)用來描述現(xiàn)實(shí)世界中的復(fù)雜問題和對象。5.1Matplotlib數(shù)據(jù)可視化基礎(chǔ)Matplotlib是一個(gè)在python下實(shí)現(xiàn)的類matlab的純python的第三方庫,旨在用python實(shí)現(xiàn)matlab的功能,是python下最出色的繪圖庫。其風(fēng)格跟matlab相似,同時(shí)也繼承了python的簡單明了。要使用matplotlib得先安裝numpy庫(一個(gè)python下數(shù)組處理的第三方庫,可以很方便的處理矩陣,數(shù)組)。matplotlib對于圖像美化方面比較完善,可以自定義線條的顏色和樣式,可以在一張繪圖紙上繪制多張小圖,也可以在一張圖上繪制多條線,可以很方便地將數(shù)據(jù)可視化并對比分析。5.1Matplotlib數(shù)據(jù)可視化基礎(chǔ)Matplotlib模塊依賴于NumPy和tkinter模塊,可以繪制多種形式的圖形,包括線圖、直方圖、餅圖、散點(diǎn)圖等,圖形質(zhì)量滿足出版要求,是數(shù)據(jù)可視化的重要工具。Matplotlib中應(yīng)用最廣的是matplotlib.pyplot模塊。Pyplot提供了一套和Matlab類似的繪圖API,使得Matplotlib的機(jī)制更像Matlab。我們只需要調(diào)用Pyplot模塊所提供的函數(shù)就可以實(shí)現(xiàn)快速繪圖并設(shè)置圖表的各個(gè)細(xì)節(jié)。在Jupyternotebook中進(jìn)行交互式繪圖,需要執(zhí)行一下語句:%matplotlibnotebook使用matplotlib時(shí),使用的導(dǎo)入慣例為:importmatplotlib.pyplotasplt圖5-1Matplotlib中的常用繪圖及分組5.1Matplotlib數(shù)據(jù)可視化基礎(chǔ)相關(guān)函數(shù)簡介

figure():創(chuàng)建一個(gè)新的繪圖窗口。figtext():為figure添加文字axes():為當(dāng)前figure添加一個(gè)坐標(biāo)軸plot():繪圖函數(shù)polar():繪制極坐標(biāo)圖axis():獲取或設(shè)置軸屬性的邊界方法(坐標(biāo)的取值范圍)clf:清除當(dāng)前figure窗口cla:清除當(dāng)前axes窗口close:關(guān)閉當(dāng)前figure窗口subplot:一個(gè)圖中包含多個(gè)axestext():在軸上添加文字title():設(shè)置當(dāng)前axes標(biāo)題xlabel/ylabel:設(shè)置當(dāng)前X軸或Y軸的標(biāo)簽相關(guān)函數(shù)簡介hist():繪制直方圖hist2d():繪制二維在直方圖hold:設(shè)置當(dāng)前圖窗狀態(tài);off或者onimread():讀取一個(gè)圖像,從圖形文件中提取數(shù)組legend():為當(dāng)前axes放置標(biāo)簽pie():繪制餅狀圖scatter():做一個(gè)X和Y的散點(diǎn)圖,其中X和Y是相同長度的序列對象stackplot():繪制一個(gè)堆疊面積圖acorr():繪制X的自相關(guān)函數(shù)annotate():用箭頭在指定的數(shù)據(jù)點(diǎn)創(chuàng)建一個(gè)注釋或一段文本bar():繪制垂直條形圖 barh():繪制橫向條形圖barbs():繪制一個(gè)倒鉤的二維場1.創(chuàng)建畫布與創(chuàng)建子圖第一部分主要作用是構(gòu)建出一張空白的畫布,并可以選擇是否將整個(gè)畫布劃分為多個(gè)部分,方便在同一幅圖上繪制多個(gè)圖形的情況。最簡單的繪圖可以省略第一部分,而后直接在默認(rèn)的畫布上進(jìn)行圖形繪制。函數(shù)名稱函數(shù)作用plt.figure創(chuàng)建一個(gè)空白畫布,可以指定畫布大小,像素。figure.add_subplot創(chuàng)建并選中子圖,可以指定子圖的行數(shù),列數(shù),與選中圖片編號。5.1Matplotlib數(shù)據(jù)可視化基礎(chǔ)importmatplotlib.pyplotaspltimportnumpyasnpdata=np.arange(10)plt.plot(data)繪制的圖位于圖片(figure)對象中。5.1Matplotlib數(shù)據(jù)可視化基礎(chǔ)【例5-1】創(chuàng)建子圖importmatplotlib.pyplotaspltfig=plt.figure()#不能使用空白的figure繪圖,需要創(chuàng)建子圖ax1=fig.add_subplot(2,2,1)ax2=fig.add_subplot(2,2,2)ax3=fig.add_subplot(2,2,3)5.1Matplotlib數(shù)據(jù)可視化基礎(chǔ)5.1Matplotlib可視化子圖繪制fig=plt.figure()ax1=fig.add_subplot(2,2,1)ax2=fig.add_subplot(2,2,2)ax3=fig.add_subplot(2,2,3)ax1.plot([1.5,2,3.5,-1,1.6])5.1Matplotlib可視化可以用語句Fig,axes=plt.subplots(2,3)創(chuàng)建一個(gè)新的圖片,然后返回包含了已生成子圖對象的NumPy數(shù)組。數(shù)組axes可以像二維數(shù)組那樣方便地進(jìn)行索引,如axes[0,1]。也可以通過sharex和sharey表明子圖分別擁有相同的x軸和y軸。fig,axes=plt.subplots(2,3)5.1Matplotlib可視化調(diào)整子圖周圍的間距。In[4]:fig,axes=plt.subplots(2,2,sharex=True,sharey=True)foriinrange(2):forjinrange(2):

axes[i,j].hist(np.random.randn(500),bins=50,color='k',alpha=0.5)plt.subplots_adjust(wspace=0,hspace=0)Out[4]:2.添加畫布內(nèi)容第二部分是繪圖的主體部分。其中添加標(biāo)題,坐標(biāo)軸名稱,繪制圖形等步驟是并列的,沒有先后順序,可以先繪制圖形,也可以先添加各類標(biāo)簽。但是添加圖例一定要在繪制圖形之后。函數(shù)名稱函數(shù)作用plt.title在當(dāng)前圖形中添加標(biāo)題,可以指定標(biāo)題的名稱、位置、顏色、字體大小等參數(shù)。plt.xlabel在當(dāng)前圖形中添加x軸名稱,可以指定位置、顏色、字體大小等參數(shù)。plt.ylabel在當(dāng)前圖形中添加y軸名稱,可以指定位置、顏色、字體大小等參數(shù)。plt.xlim指定當(dāng)前圖形x軸的范圍,只能確定一個(gè)數(shù)值區(qū)間,而無法使用字符串標(biāo)識。plt.ylim指定當(dāng)前圖形y軸的范圍,只能確定一個(gè)數(shù)值區(qū)間,而無法使用字符串標(biāo)識。plt.xticks指定x軸刻度的數(shù)目與取值。plt.yticks指定y軸刻度的數(shù)目與取值。plt.legend指定當(dāng)前圖形的圖例,可以指定圖例的大小、位置、標(biāo)簽。5.1Matplotlib可視化importnumpyasnpimportmatplotlib.pyplotasplt%matplotlibinlinedata=np.arange(0,1,0.01)plt.title('mylinesexample')plt.xlabel('X')plt.ylabel('Y')plt.xlim(0,1)plt.ylim(0,1)plt.xticks([0,0.2,0.4,0.6,0.8,1])plt.yticks([0,0.2,0.4,0.6,0.8,1])plt.plot(data,data**2)plt.plot(data,data**3)plt.legend(['y=x^2','y=x^3'])plt.show()5.1Matplotlib可視化data=np.arange(0,np.pi*2,0.01)fig1=plt.figure(figsize=(9,7),dpi=90)#確定畫布大小#繪制第一幅子圖ax1=fig1.add_subplot(1,2,1)plt.title('linesexample')plt.xlabel('X')plt.ylabel('Y')plt.xlim(0,1)plt.ylim(0,1)plt.xticks([0,0.2,0.4,0.6,0.8,1])plt.yticks([0,0.2,0.4,0.6,0.8,1])plt.plot(data,data**2)plt.plot(data,data**3)plt.legend(['y=x^2','y=x^3'])#繪制第二幅子圖ax1=fig1.add_subplot(1,2,2)plt.title('sin-cos')plt.xlabel('X')plt.ylabel('Y')plt.xlim(0,np.pi*2)plt.ylim(-1,1)plt.xticks([0,np.pi/2,np.pi,np.pi*3/2,np.pi*2])plt.yticks([-1,-0.5,0,0.5,1])plt.plot(data,np.sin(data))plt.plot(data,np.cos(data))plt.legend(['sin','cos'])plt.show()5.1Matplotlib可視化Matplotlib的Legend圖例就是為了幫助我們展示每個(gè)數(shù)據(jù)對應(yīng)的圖像名稱,更好的讓讀者認(rèn)識到你的數(shù)據(jù)結(jié)構(gòu)。關(guān)于plt.legend()的說明如下:常用設(shè)置示例:plt.legend(loc='best',frameon=False)#去掉圖例邊框,推薦使用plt.legend(loc='best',edgecolor='blue')#設(shè)置圖例邊框顏色plt.legend(loc='best',facecolor='blue')#設(shè)置圖例背景顏色,若無邊框,參數(shù)無效0:’best’1:‘upperright’2:‘upperleft’3:‘lowerleft’4:‘lowerright’5:‘right’6:‘centerleft’7:‘centerright’8:‘lowercenter’9:‘uppercenter’10:‘center’5.1Matplotlib可視化3.繪圖的保存與顯示第三部分主要用于保存和顯示圖形。例:fig.savefig(save_path,format='png',transparent=True,dpi=300,pad_inches=0)函數(shù)名稱函數(shù)作用plt.savafig保存繪制的圖片,可以指定圖片的分辨率、邊緣的顏色等參數(shù)。plt.show在本機(jī)顯示圖形。5.1Matplotlib可視化figure.savefig選項(xiàng)參數(shù)描述fname包含文件路徑或Python文件型對象的字符串。圖片格式是從文件擴(kuò)展名中推斷出來的(例如pdf格式的.pdf)dpi設(shè)置每英寸點(diǎn)數(shù)的分辨率,默認(rèn)為100facecolor,edgecolor子圖之外的圖形背景顏色,默認(rèn)是’w’(白色)format文件格式(’png’,’pdf’,’svg’,’ps’等)bbox_inches要保存的圖片范圍,如果設(shè)置為‘tight‘則去除圖片周圍的空白5.1Matplotlib可視化pyplot使用rc配置文件來自定義圖形的各種默認(rèn)屬性,被稱為rc配置或rc參數(shù)。在pyplot中幾乎所有的默認(rèn)屬性都是可以控制的,例如視圖窗口大小以及每英寸點(diǎn)數(shù)、線條寬度、顏色和樣式、坐標(biāo)軸、坐標(biāo)和網(wǎng)格屬性、文本、字體等。兩種方式可以設(shè)置參數(shù),即全局參數(shù)定制和rc設(shè)置方法。查看matplotlib的rc參數(shù):importmatplotlibaspltprint(plt.rc_params())3.設(shè)置pyplot的動態(tài)rc參數(shù)5.1Matplotlib可視化1.使用參數(shù)字典importmatplotlibaspltprint(plt.rc_params())參數(shù)眾多常用參數(shù):Axes:設(shè)置坐標(biāo)軸邊界、顏色、坐標(biāo)刻度值大小和網(wǎng)格的顯示;Figure:設(shè)置邊界顏色、圖形大小和子區(qū);Font:設(shè)置字號、字體和樣式;Grid:設(shè)置網(wǎng)格顏色和線型;Legend:設(shè)置圖例和其中的文本顯示;Lines:設(shè)置線條顏色、寬度、線型等;Savefig:對保存圖像進(jìn)行單獨(dú)設(shè)置;Xtick和ytick:X、Y軸的主刻度和次刻度設(shè)置顏色、大小、方向和標(biāo)簽大小。5.1Matplotlib可視化3.設(shè)置pyplot的動態(tài)rc參數(shù)1.全局參數(shù)定制In[]:importmatplotlibaspltprint(plt.matplotlib_fname())#顯示當(dāng)前用戶的配置文件目錄

查找到當(dāng)前用戶的配置文件目錄,然后用編輯器打

開,修改matplotlibrc文件,即可修改配置參數(shù)。5.1Matplotlib可視化6.3設(shè)置pyplot的動態(tài)rc參數(shù)2.線條的常用rc參數(shù)名稱、解釋與取值rc參數(shù)名稱解釋取值lines.linewidth線條寬度取0-10之間的數(shù)值,默認(rèn)為1.5。lines.linestyle線條樣式可取“-”“--”“-.”“:”四種。默認(rèn)為“-”。lines.marker線條上點(diǎn)的形狀可取“o”

“D”

“h”

“.”

“,”“S”等20種,默認(rèn)為None。lines.markersize點(diǎn)的大小取0-10之間的數(shù)值,默認(rèn)為1。6.3設(shè)置pyplot的動態(tài)rc參數(shù)常用線條類型解釋linestyle取值意義linestyle取值意義-實(shí)線-.點(diǎn)線--長虛線:短虛線marker取值意義marker取值意義‘o’圓圈‘.’點(diǎn)‘D’菱形‘s’正方形‘h’六邊形1‘*’星號‘H’六邊形2‘d’小菱形‘-’水平線‘v’一角朝下的三角形‘8’八邊形‘<’一角朝左的三角形‘p’五邊形‘>’一角朝右的三角形‘,’像素‘^’一角朝上的三角形‘+’加號‘\’豎線‘None’無‘x’X5.1Matplotlib可視化需要注意的是,由于默認(rèn)的Pyplot字體并不支持中文字符的顯示,因此需要通過設(shè)置font.sans-serif參數(shù)改變繪圖時(shí)的字體,使得圖形可以正常顯示中文。同時(shí),由于更改字體后,會導(dǎo)致坐標(biāo)軸中的部分字符無法顯示,因此需要同時(shí)更改axes.unicode_minus參數(shù)。plt.rcParams['font.family']=['SimHei']#用來顯示中文標(biāo)簽plt.rcParams['axes.unicode_minus']=False#用來正常顯示負(fù)號除了設(shè)置線條和字體的rc參數(shù)外,還有設(shè)置文本、箱線圖、坐標(biāo)軸、刻度、圖例、標(biāo)記、圖片、圖像保存等rc參數(shù)。5.1Matplotlib可視化【例5-8】rc參數(shù)設(shè)置示例fig,ax=plt.subplots()#配置中文顯示plt.rcParams['font.family']=['SimHei']plt.rcParams['axes.unicode_minus']=Falsedeff(t):returnnp.cos(2*np.pi*t)x1=np.arange(0.0,4.0,0.5)x2=np.arange(0.0,4.0,0.01)plt.figure(1)plt.subplot(2,2,1)plt.plot(x1,f(x1),'bo',x2,f(x2),'k')plt.title('子圖1')plt.subplot(2,2,2)plt.plot(np.cos(2*np.pi*x2),'r--')plt.title('子圖2')plt.show()5.1Matplotlib可視化plt.plot(np.random.randn(30).cumsum(),color='k',linestyle='dashed',marker='o')改變刻度:ax.set_xticks([0,25,50,75,100])改變刻度:ax.set_xticklabels(['x1','x2','x3','x4','x5'],rotation=30,fontsize='small')5.1Matplotlib可視化添加圖例:添加每個(gè)圖表時(shí)傳遞label參數(shù)。5.1Matplotlib可視化fig=plt.figure()np.random.seed(2030)ax=fig.add_subplot(1,1,1)ax.plot(np.random.randn(20),color='k',linestyle='-',marker='o',label='one')ax.plot(np.random.randn(20),color='r',linestyle='--',marker='+',label='two')ax.plot(np.random.randn(20),color='y',linestyle='-.',marker='v',label='three')ax.set_xticks([0,5,10,15,20])#set_xticks設(shè)置刻度ax.set_xticklabels(['x1','x2','x3','x4','x5'],rotation=30,fontsize='large')#set_xticklabels改變刻度,設(shè)置刻度的旋轉(zhuǎn)角度及字體等ax.legend(loc='best')importnumpyasnpimportmatplotlib.pyplotaspltfig,ax=plt.subplots()plt.rcParams['font.family']=['SimHei']#用來顯示中文標(biāo)簽plt.rcParams['axes.unicode_minus']=False#用來正常顯示負(fù)號x1=np.arange(0.0,3.0,0.01)x2=np.arange(0.0,4.0,0.01)y1=np.cos(2*np.pi*x1)*np.exp(-x1)y2=np.cos(2*np.pi*x2)plt.subplot(2,1,1)plt.plot(x1,y1)plt.title('子圖1')plt.xlabel('X軸')plt.ylabel('Y軸')plt.subplot(2,1,2)plt.plot(x1,y1)plt.title('子圖2')plt.xlabel('數(shù)量')plt.ylabel('Y值')plt.show()5.1Matplotlib可視化rc參數(shù)設(shè)置fig,ax=plt.subplots()#配置中文顯示plt.rcParams['font.family']=['SimHei']#用來顯示中文標(biāo)簽plt.rcParams['axes.unicode_minus']=False#用來正常顯示負(fù)號deff(t):returnnp.cos(2*np.pi*t)x1=np.arange(0.0,5.0,0.5)x2=np.arange(0.0,5.0,0.01)plt.figure(1)plt.subplot(2,2,1)plt.plot(x1,f(x1),'bo',x2,f(x2),'k')plt.subplot(2,2,2)plt.plot(np.cos(2*np.pi*x2),'r--')plt.show()rc參數(shù)設(shè)置fig,ax=plt.subplots()plt.rcParams['font.family']=['SimHei']#用來顯示中文標(biāo)簽plt.rcParams['axes.unicode_minus']=False#用來正常顯示負(fù)號x1=np.arange(0.0,3.0,0.01)y1=np.cos(2*np.pi*x1)*np.exp(-x1)plt.subplot(2,1,1)plt.plot(x1,y1)plt.title('子圖1')plt.xlabel('X軸')plt.ylabel('Y軸')plt.xlim(-5,3)plt.ylim(-10,50)plt.show()5.1.3繪圖的填充(1)調(diào)用函數(shù)fill_between()實(shí)現(xiàn)曲線下面部分的填充:importnumpyasnpimportmatplotlib.pyplotaspltx=np.linspace(0,1,500)y=np.sin(3*np.pi*x)*np.exp(-4*x)fig,ax=plt.subplots()plt.plot(x,y)plt.fill_between(x,0,y,facecolor='green',alpha=0.3)x:第一個(gè)參數(shù)表示覆蓋的區(qū)域,x,表示整個(gè)x都覆蓋

0:表示覆蓋的下限

y:表示覆蓋的上限是y這個(gè)曲線

facecolor:覆蓋區(qū)域的顏色

alpha:覆蓋區(qū)域的透明度[0,1],其值越大,表示越不透明(2)部分區(qū)域的填充:plt.fill_between(x[15:300],0,0.4,facecolor='green',alpha=0.3)5.1.3繪圖的填充(3)兩條曲線之間的區(qū)域填充:importnumpyasnpimportmatplotlib.pyplotaspltx=np.linspace(0,1,500)y1=np.sin(3*np.pi*x)*np.exp(-4*x)y2=y1+0.2plt.plot(x,y1,'b')plt.plot(x,y2,'r')plt.fill_between(x,y1,y2,facecolor='green',alpha=0.3)plt.show()

5.1.3繪圖的填充(4)利用fill進(jìn)行繪圖的填充:In[]:importnumpyasnpimportmatplotlib.pyplotaspltx=np.linspace(0,1,500)y=np.sin(3*np.pi*x)*np.exp(-4*x)fig,ax=plt.subplots()ax.fill(x,y)plt.show()Out[]:5.1.3繪圖的填充5.1.4繪圖注釋繪圖時(shí)有時(shí)需要在圖表中加文本注解這時(shí)可以通過text函數(shù)在指定的位置(x,y)加入文本注解;通過annotate()在指定位置實(shí)現(xiàn)指向型注釋。1指向型注釋annotate()2.無指向型注釋text()5.1.4繪圖注釋importnumpyasnpimportmatplotlib.pyplotasplt%matplotlibinline#配置中文顯示plt.rcParams['font.family']=['SimHei']plt.rcParams['axes.unicode_minus']=Falsex=np.arange(-10,11,1)y=x*xplt.plot(x,y)plt.title('這是一個(gè)標(biāo)題示例')plt.text(-2.5,30,'funcitony=x*x')plt.show()plt.annotate('這是一個(gè)示例',xy=(0,1),xytext=(-2,22),arrowprops={'headwidth':10,'facecolor':'r'})5.1.4繪圖注釋如在柱狀圖上加入文本數(shù)字,可以清楚地顯示每個(gè)類別的數(shù)量。如6個(gè)城市8月份的日均最高氣溫。plt.rcParams['font.family']=['SimHei']data=[25,30,32,34,34,23]label=['青海','蘭州','北京','上海','廣州','拉薩']plt.xticks(range(len(data)),label)plt.xlabel('城市')plt.ylabel('溫度')plt.title('六城市8月份日均最高氣溫')plt.bar(range(len(data)),data)forx,yinzip(range(len(data)),data):plt.text(x,y,y,ha='center',va='bottom')plt.show()5.1.4繪圖注釋fig=plt.figure()ax1=fig.add_subplot(121)t=np.arange(0.0,5,0.01)s=np.cos(2*np.pi*t)line,=ax1.plot(t,s,lw=2)bbox=dict(boxstyle='round',fc='white')ax1.annotate('localmax',xy=(2,1),xytext=(3,1.5),arrowprops=dict(facecolor='black',edgecolor='red',headwidth=7,width=2),bbox=bbox)#arrowstyle箭頭類型,arrowstyle="->",connectionstyle="arc3"指的是#xy與xytext之間的連接類型bbox_prop=dict(fc='white')ax1.set_xlabel('asix-X',bbox=bbox_prop)ax1.set_ylim(-2,2)ax1.text(1,1,'max')5.1.5繪圖中的公式Matlplotlib對Latex有一定的支持。在matplotlib里面,可以使用LaTex的命令來編輯公式,只需要在字符串前面加一個(gè)‘r’即可。importnumpyasnpimportmatplotlib.pyplotasplt%matplotlibinlineplt.xlim([1,8])plt.ylim([1,3])plt.text(2,2,r'$\alpha\beta\pi\lambda\omega$',size=15)plt.text(4,2,r'$\sin(0)=\cos(\frac{\pi}{2})$',size=20)plt.text(2,1.5,r'$\lim_{x\rightarrowy}\frac{1}{x^3}$',size=25,color='b')plt.text(5,1.5,r'$\sqrt[4]{x}=\sqrt{y}$',size=25)plt.title(r'Title$\sum_{n=1}^\infty'r'\frac{-e^{i\pi}}{2^n}$!',fontsize=20)plt.show()5.1.6pyplot中的常用繪圖折線圖折線圖(linechart)是一種將數(shù)據(jù)點(diǎn)按照順序連接起來的圖形??梢钥醋魇菍⑸Ⅻc(diǎn)圖,按照x軸坐標(biāo)順序連接起來的圖形。折線圖的主要功能是查看因變量y隨著自變量x改變的趨勢,最適合用于顯示隨時(shí)間(根據(jù)常用比例設(shè)置)而變化的連續(xù)數(shù)據(jù)。同時(shí)還可以看出數(shù)量的差異,增長趨勢的變化。plot函數(shù)matplotlib.pyplot.plot(*args,**kwargs)

plot函數(shù)在官方文檔的語法中只要求填入不定長參數(shù),實(shí)際可以填入的主要參數(shù)主要如下。參數(shù)名稱說明x,y接收array。表示x軸和y軸對應(yīng)的數(shù)據(jù)。無默認(rèn)。color接收特定string。指定線條的顏色。默認(rèn)為None。linestyle接收特定string。指定線條類型。默認(rèn)為“-”。marker接收特定string。表示繪制的點(diǎn)的類型。默認(rèn)為None。alpha接收0-1的小數(shù)。表示點(diǎn)的透明度。默認(rèn)為None。5.1.6pyplot中的常用繪圖plot函數(shù)color參數(shù)的8種常用顏色的縮寫。顏色縮寫代表的顏色顏色縮寫代表的顏色b藍(lán)色m品紅g綠色y黃色r紅色k黑色c青色w白色5.1.6pyplot中的常用繪圖簡單折線圖importnumpyasnpx1=np.arange(0,30)plt.plot(x1,x1*2,'b')plt.show()帶點(diǎn)的折線圖plt.plot(x,y,marker='*',linewidth=1,linestyle='--',color='orange')plt.plot(x,z)5.1.6pyplot中的常用繪圖繪制折線圖Series和DataFrame都有一個(gè)plot屬性,用于繪制基本的圖形。默認(rèn)情況下,plot()繪制的都是折線。importpandasaspds=pd.Series(np.random.randn(10).cumsum(),index=np.arange(0,100,10))s.plot()Series的索引傳入作為繪圖的X軸,x軸的刻度和范圍可以通過xticks和xlim調(diào)整。繪制折線圖Series和DataFrame都有一個(gè)plot屬性,用于繪制基本的圖形。默認(rèn)情況下,plot()繪制的都是折線。s=pd.DataFrame(np.random.randn(10,4).cumsum(0),columns=['A','B','C','D'],index=np.arange(0,100,10))s.plot()5.1.6pyplot中的常用繪圖-繪制散點(diǎn)圖散點(diǎn)圖散點(diǎn)圖(scatterdiagram)又稱為散點(diǎn)分布圖,是以一個(gè)特征為橫坐標(biāo),另一個(gè)特征為縱坐標(biāo),利用坐標(biāo)點(diǎn)(散點(diǎn))的分布形態(tài)反映特征間的統(tǒng)計(jì)關(guān)系的一種圖形。值是由點(diǎn)在圖表中的位置表示,類別是由圖表中的不同標(biāo)記表示,通常用于比較跨類別的數(shù)據(jù)。5.1.6pyplot中的常用繪圖--繪制散點(diǎn)圖scatter函數(shù)matplotlib.pyplot.scatter(x,y,s=None,c=None,marker=None,alpha=None,**kwargs)參數(shù)名稱說明x,y接收array。表示x軸和y軸對應(yīng)的數(shù)據(jù)。無默認(rèn)。s接收數(shù)值或者一維的array。指定點(diǎn)的大小,若傳入一維array則表示每個(gè)點(diǎn)的大小。默認(rèn)為None。c接收顏色或者一維的array。指定點(diǎn)的顏色,若傳入一維array則表示每個(gè)點(diǎn)的顏色。默認(rèn)為Nonemarker接收特定string。表示繪制的點(diǎn)的類型。默認(rèn)為None。alpha接收0-1的小數(shù)。表示點(diǎn)的透明度。默認(rèn)為None。散點(diǎn)圖1fig,ax=plt.subplots()plt.rcParams['font.family']=['SimHei']#用來顯示中文標(biāo)簽plt.rcParams['axes.unicode_minus']=False#用來正常顯示負(fù)號x1=np.arange(1,30)y1=np.sin(x1)ax1=plt.subplot(1,1,1)plt.title('散點(diǎn)圖')plt.xlabel('X')plt.ylabel('Y')lvalue=x1ax1.scatter(x1,y1,c='r',s=100,linewidths=lvalue,marker='o')plt.legend('x1')plt.show()散點(diǎn)圖2importnumpyasnpimportmatplotlib.pyplotaspltfig,ax=plt.subplots()plt.rcParams['font.family']=['SimHei']#用來顯示中文標(biāo)簽plt.rcParams['axes.unicode_minus']=False#用來正常顯示負(fù)號forcolorin['red','green','blue']:n=500x,y=np.random.randn(2,n)ax.scatter(x,y,c=color,label=color,alpha=0.3,edgecolors='none')ax.legend()ax.grid(True)plt.show()5.1.6pyplot中的常用繪圖--繪制柱狀圖直方圖柱形圖又稱長條圖、柱狀統(tǒng)計(jì)圖、條圖、條狀圖和棒形圖,是一種以長方形的長度為變量的統(tǒng)計(jì)圖表。繪制直方圖函數(shù)bar格式:matplotlib.pyplot.bar(left,height,width=0.8,bottom=None,hold=None,data=None,**kwargs)5.1.6pyplot中的常用繪圖--繪制直方圖bar函數(shù)matplotlib.pyplot.bar(left,height,width=0.8,bottom=None,hold=None,data=None,**kwargs)常用參數(shù)及說明如下表所示。參數(shù)名稱說明left接收array。表示x軸數(shù)據(jù)。無默認(rèn)。height接收array。表示x軸所代表數(shù)據(jù)的數(shù)量。無默認(rèn)。width接收0-1之間的float。指定直方圖寬度。默認(rèn)為0.8。color接收特定string或者包含顏色字符串的array。表示直方圖顏色。默認(rèn)為None。5.1.6pyplot中的常用繪圖--繪制直方圖fig,axes=plt.subplots(2,1)data=pd.Series(np.random.randn(16),index=list('abcdefghijklmnop'))data.plot.bar(ax=axes[0],color=‘k’,alpha=0.7)#垂直柱狀圖data.plot.barh(ax=axes[1],color=‘k’,alpha=0.7)#alpha設(shè)置透明度5.1.6pyplot中的常用繪圖--繪制直方圖在dataframe中,柱狀圖將每一行中的值分組到并排的柱子中的一組。df=pd.DataFrame(np.random.rand(6,4),index=['one','two','three','four','five','six'],columns=pd.Index(['A','B','C','D'],name='Genus'))df.plot.bar()5.1.6pyplot中的常用繪圖--柱狀圖示例fig,ax=plt.subplots()plt.rcParams['font.family']=['SimHei']#用來顯示中文標(biāo)簽plt.rcParams['axes.unicode_minus']=False#用來正常顯示負(fù)號plt.figure(figsize=(7,5))x=np.arange(1,6)Y1=np.random.uniform(1.5,1.0,5)Y2=np.random.uniform(1.5,1.0,5)plt.bar(x,Y1,width=0.35,facecolor='lightskyblue',edgecolor='white')plt.bar(x+0.35,Y2,width=0.35,facecolor='yellowgreen',edgecolor='white')plt.show()5.1.6pyplot中的常用繪圖--繪制餅圖餅圖餅圖(PieGraph)是將各項(xiàng)的大小與各項(xiàng)總和的比例顯示在一張“餅”中,以“餅”的大小來確定每一項(xiàng)的占比。餅圖可以比較清楚地反映出部分與部分、部分與整體之間的比例關(guān)系,易于顯示每組數(shù)據(jù)相對于總數(shù)的大小,而且顯現(xiàn)方式直觀。5.1.6pyplot中的常用繪圖--繪制餅圖pie函數(shù)matplotlib.pyplot.pie(x,explode=None,labels=None,colors=None,autopct=None,pctdistance=0.6,shadow=False,labeldistance=1.1,startangle=None,radius=None,…)參數(shù)名稱說明參數(shù)名稱說明x接收array。表示用于繪制撇的數(shù)據(jù)。無默認(rèn)。autopct接收特定string。指定數(shù)值的顯示方式。默認(rèn)為None。explode接收array。表示指定項(xiàng)離餅圖圓心為n個(gè)半徑。默認(rèn)為None。pctdistance接收float。指定每一項(xiàng)的比例和距離餅圖圓心n個(gè)半徑。默認(rèn)為0.6。labels接收array。指定每一項(xiàng)的名稱。默認(rèn)為None。labeldistance接收float。指定每一項(xiàng)的名稱和距離餅圖圓心多少個(gè)半徑。默認(rèn)為1.1。color接收特定string或者包含顏色字符串的array。表示餅圖顏色。默認(rèn)為None。radius接收float。表示餅圖的半徑。默認(rèn)為1。5.1.6pyplot中的常用繪圖--繪制餅圖plt.figure(figsize=(6,6))ax=plt.axes([0.1,0.1,0.8,0.8])#建立軸的大小labels='Springs','Summer','Autumn','Winter'x=[15,30,45,10]explode=(0.05,0.05,0.05,0.05)#這個(gè)是控制分離的距離的,默認(rèn)的餅圖不分離。plt.pie(x,labels=labels,explode=explode,startangle=60,autopct='%1.1f%%')#qutopct在圖中顯示比例值,注意值的格式。plt.title('Ranydaysbyseason')plt.show()5.1.6pyplot中的常用繪圖--繪制箱線圖箱線圖箱線圖(boxplot)也稱箱須圖,其繪制需使用常用的統(tǒng)計(jì)量,能提供有關(guān)數(shù)據(jù)位置和分散情況的關(guān)鍵信息,尤其在比較不同特征時(shí),更可表現(xiàn)其分散程度差異。箱線圖利用數(shù)據(jù)中的五個(gè)統(tǒng)計(jì)量(最小值、下四分位數(shù)、中位數(shù)、上四分位數(shù)和最大值)來描述數(shù)據(jù),它也可以粗略地看出數(shù)據(jù)是否具有對稱性、分布的分散程度等信息,特別可以用于對幾個(gè)樣本的比較。5.1.6pyplot中的常用繪圖--繪制箱線圖boxplot函數(shù)matplotlib.pyplot.boxplot(x,notch=None,sym=None,vert=None,whis=None,positions=None,widths=None,patch_artist=None,meanline=None,labels=None,…)參數(shù)名稱說明參數(shù)名稱說明x接收array。表示用于繪制箱線圖的數(shù)據(jù)。無默認(rèn)。positions接收array。表示圖形位置。默認(rèn)為None。notch接收boolean。表示中間箱體是否有缺口。默認(rèn)為None。widths接收scalar或者array。表示每個(gè)箱體的寬度。默認(rèn)為None。sym接收特定sting。指定異常點(diǎn)形狀。默認(rèn)為None。labels接收array。指定每一個(gè)箱線圖的標(biāo)簽。默認(rèn)為None。vert接收boolean。表示圖形是橫向縱向或者橫向。默認(rèn)為None。meanline接收boolean。表示是否顯示均值線。默認(rèn)為False。5.1.6pyplot中的常用繪圖--繪制箱線圖importnumpyasnpimportmatplotlib.pyplotaspltimportpandasaspdnp.random.seed(2)#設(shè)置隨機(jī)種子df=pd.DataFrame(np.random.rand(5,4),columns=['A','B','C','D'])#先生成0-1之間的5*4維度數(shù)據(jù),再裝入4列DataFrame中df.boxplot()#也可用plot.box()plt.show()5.1.6pyplot中的常用繪圖--繪制概率圖概率圖模型是圖靈獎獲得者Pearl提出的用來表示變量間概率依賴關(guān)系的理論。正態(tài)分布又名高斯分布。正態(tài)概率密度函數(shù)normpdf(X,mu,sigma)其中,x為向量,mu為均值,sigma為標(biāo)準(zhǔn)差。5.1.6pyplot中的常用繪圖--繪制概率圖示例fig,ax=plt.subplots()plt.rcParams['font.family']=['SimHei']#用來顯示中文標(biāo)簽plt.rcParams['axes.unicode_minus']=False#用來正常顯示負(fù)號np.random.seed(1587554)mu=100sigma=15x=mu+sigma*np.random.randn(437)num_bins=50n,bins,patches=ax.hist(x,num_bins,normed=1)y=plt.mlab.normpdf(bins,mu,sigma)ax.plot(bins,y,'--')fig.tight_layout()plt.show()5.1.6pyplot中的常用繪圖—雷達(dá)圖雷達(dá)圖也稱為網(wǎng)絡(luò)圖,星圖,蜘蛛網(wǎng)圖,不規(guī)則多邊形,極坐標(biāo)圖等。雷達(dá)圖是以從同一點(diǎn)開始的軸上表示的三個(gè)或更多個(gè)定量變量的二維圖表的形式顯示多變量數(shù)據(jù)的圖形方法。軸的相對位置和角度通常是無信息的。雷達(dá)圖相當(dāng)于平行坐標(biāo)圖,軸徑向排列。5.1.6pyplot中的常用繪圖—雷達(dá)圖plt.figure(figsize=(6,6))ax=plt.axes([0.1,0.1,0.8,0.8])#建立軸的大小labels='Springs','Summer','Autumn','Winter'x=[15,30,45,10]explode=(0.05,0.05,0.05,0.05)#這個(gè)是控制分離的距離的,默認(rèn)餅圖不分離plt.pie(x,labels=labels,explode=explode,startangle=60,autopct='%1.1f%%')#qutopct在圖中顯示比例值,注意值的格式plt.title('Ranydaysbyseason')plt.tick_params(labelsize=12)plt.show()5.1.6pyplot中的常用繪圖—帶表格的繪圖在繪圖中,有時(shí)候需要同時(shí)顯示數(shù)據(jù)表格。Matplotlib在繪圖中提供了table方法可以同時(shí)顯示數(shù)據(jù)表格。代碼見課本5.1.6利用Matplotlib繪制詞云一、安裝需要的包(1)WordCloud

(2)jiebacondainstall-cconda-forgejieba二、詞云生成過程一般生成詞云的過程為:(1)首先使用pandas讀取數(shù)據(jù)并將需要分析的數(shù)據(jù)轉(zhuǎn)化為列表;(2)對獲得的列表數(shù)據(jù)利用分詞工具jieba進(jìn)行遍歷分詞;(3)使用WordCloud設(shè)置詞云圖片的屬性、掩碼和停用詞,并

生成詞云圖像。詞云生成示例5.1.6利用Matplotlib繪制詞云importjiebafromwordcloudimportWordCloud,STOPWORDSimportPIL.Imageasimageimportnumpyasnpdefget_wordClound():

file=open("data//背影.txt")

mylist=file.read()

word_list=jieba.cut(mylist)

new_text=''.join(word_list)

#加入背景形狀

pic_path='data//myimg.jpg'

img_mask=np.array(image.open(pic_path))

#停用詞庫,英文文本的停用詞直接用stopwords=STOPWORDS詞云生成示例5.1.6利用Matplotlib繪制詞云#中文停用需要導(dǎo)入替換

stopwords=set()

content=[line.strip()forlineinopen('data//hit_stopwords.txt','r',encoding='UTF-8').readlines()]

stopwords.update(content)

#生成詞云

wordcloud=WordCloud(background_color="white",font_path='C:\Windows\Fonts\msyh.ttc',

mask=img_mask,stopwords=stopwords).generate(new_text)

plt.imshow(wordcloud)

plt.axis("off")

plt.show()wordList=get_wordClound()5.2Seaborn數(shù)據(jù)可視化Seaborn屬于Matplotlib的一個(gè)高級接口,使得繪圖更加容易,而且繪圖效果更符合現(xiàn)代人的審美。Seaborn中共有5個(gè)大類21種繪圖:風(fēng)格設(shè)置風(fēng)格設(shè)置用以設(shè)置繪圖的背景色、風(fēng)格、字型、字體等。1.Seaborn繪圖設(shè)置-Seaborn通過set函數(shù)實(shí)現(xiàn)風(fēng)格設(shè)置。seaborn.set(context='notebook',style='darkgrid',palette='deep',font='sans-serif',font_scale=1,color_codes=True,rc=None)5.2Seaborn數(shù)據(jù)可視化importseabornassnsimportnumpyasnpimportmatplotlib.pyplotaspltdefsinplot(flip=2):

x=np.linspace(0,20,50)

foriinrange(1,5):

plt.plot(x,np.cos(x+i*0.8)*(9-2*i)*flip)sinplot()運(yùn)行結(jié)果為matplotlib默認(rèn)參數(shù)下的繪制風(fēng)格,可以利用seaborn.set進(jìn)行風(fēng)格設(shè)置。5.2Seaborn數(shù)據(jù)可視化sns.set(style='darkgrid',font_scale=1.5)sinplot()如果需要轉(zhuǎn)換為seaborn默認(rèn)的繪圖設(shè)置,只需調(diào)用sns.set()方法即可。【例5-30】Seaborn默認(rèn)風(fēng)格。5.2Seaborn數(shù)據(jù)可視化sns.set()sinplot()2.Seaborn主題設(shè)置Seaborn將matplotlib的參數(shù)劃分為兩個(gè)獨(dú)立的組合。第一組是設(shè)置繪圖的外觀風(fēng)格的,第二組主要將繪圖的各種元素按比例縮放的,以至可以嵌入到不同的背景環(huán)境中??刂七@些參數(shù)的接口主要有兩對方法:控制風(fēng)格:axes_style(),

set_style()縮放繪圖:plotting_context(),

set_context()每對方法中的第一個(gè)方法(axes_style(),

plotting_context())會返回一組字典參數(shù),而第二個(gè)方法(set_style(),

set_context())會設(shè)置matplotlib的默認(rèn)參數(shù)。5.2Seaborn數(shù)據(jù)可視化5.2Seaborn數(shù)據(jù)可視化【例5-31】主題設(shè)置。sns.set_style("whitegrid")

sinplot()利用set_style()設(shè)置主題,Seaborn有五個(gè)預(yù)設(shè)的主題:darkgrid、whitegrid、dark、white和ticks,默認(rèn)為darkgrid?!纠?-32】Seaborn軸線設(shè)置。5.2Seaborn數(shù)據(jù)可視化sinplot()sns.despine()despine()方法中可以設(shè)置offset參數(shù)可以偏移坐標(biāo)軸,另外,當(dāng)刻度沒有完全覆蓋整個(gè)坐標(biāo)軸的的范圍時(shí),利用trim參數(shù)修剪刻度?!纠?-33】利用trim參數(shù)修剪刻度。sinplot()sns.despine(offset=20,trim=True)也可以通過despine()控制哪個(gè)脊柱將被移除。【例5-34】移除軸線。sinplot()sns.set(style='whitegrid',palette='muted',color_codes=True)sns.despine(left=True,bottom=True)5.2Seaborn數(shù)據(jù)可視化除了選用預(yù)設(shè)的風(fēng)格外,可以利用with語句使用axes_style()方法設(shè)置臨時(shí)繪圖參數(shù)?!纠?-35】設(shè)置臨時(shí)繪圖參數(shù)。withsns.axes_style("darkgrid"):

plt.subplot(2,1,1)

sinplot()plt.subplot(2,1,2)sinplot(-1)在seaborn中可以通過將一個(gè)字典參數(shù)傳遞給axes_style()和set_style()的參數(shù)rc進(jìn)行參數(shù)設(shè)置?!纠?-36】利用字典傳遞參數(shù)。5.2Seaborn數(shù)據(jù)可視化sns.set_style("darkgrid",{"axes.facecolor":".9"})sinplot()3.設(shè)置繪圖元素比例seaborn中通過set_context()設(shè)置縮放參數(shù),預(yù)設(shè)的參數(shù)有paper、

notebook、

talk和

poster,默認(rèn)為notebook?!纠?-37】設(shè)置繪圖元素比例paper。5.2Seaborn數(shù)據(jù)可視化sns.set_context("paper")sinplot()【例5-38】設(shè)置繪圖元素比例poster。sns.set_context("poster")sinplot()【例5-39】設(shè)置繪圖元素比例。sns.set_context("notebook",font_scale=1.8,rc={"lines.linewidth":1.5})sinplot()5.2Seaborn數(shù)據(jù)可視化5.2Seaborn數(shù)據(jù)可視化1.直方圖Seaborn中利用histplot()或displot()繪制直方圖。【例5-40】繪制iris數(shù)據(jù)集中Petal.Width的分布圖。5.2.2Seaborn中的常用繪圖importmatplotlib.pyplotaspltdf_iris=pd.read_csv('data//iris.csv')sns.set(color_codes=True)sns.histplot(df_iris['Petal.Width']

,bins=20)2.散點(diǎn)圖在Seaborn中,使用scatterplot繪制散點(diǎn)圖,利用stripplot繪制各變量在每個(gè)類別的值。【例5-41】在iris數(shù)據(jù)集中,顯示Petal.Width與Petal.Length的散點(diǎn)圖。5.2.2Seaborn中的常用繪圖【例5-42】在iris數(shù)據(jù)集中,顯示Petal.Width在Species上值的分布。5.2.2Seaborn中的常用繪圖sns.set(style='white',color_codes=True)

#設(shè)置樣式

sns.stripplot(x=df_iris['Species'],y=df_iris['Petal.Width'],data=df_iris)sns.despine()

#去坐標(biāo)軸3.箱線圖有時(shí)候,散點(diǎn)圖表達(dá)的值的分布信息有限,因此需要一些其它的繪圖。箱線圖可以觀察四分位數(shù)、中位數(shù)和極值。Seaborn中利用boxplot()繪制箱線圖?!纠?-43】用boxplot繪制箱線圖。5.2.2Seaborn中的常用繪圖sns.boxplot(x=df_iris['Species'],y

=

df_iris['Petal.Width'])

plt.show()4.pairplot()在seaborn中利用pairplot方法實(shí)現(xiàn)數(shù)據(jù)特征的兩兩對比。默認(rèn)是所有特征,可以通過vars參數(shù)指定部分特征?!纠?-44】利用pairplot繪圖。5.2.2Seaborn中的常用繪圖sns.set(style="ticks")

g=sns.pairplot(df_iris,vars=['Sepal.Length','Petal.Length'])5.violinplot小提琴圖小提琴圖其實(shí)是箱線圖與核密度圖的結(jié)合,箱線圖展示了分位數(shù)的位置,小提琴圖則展示了任意位置的密度,通過小提琴圖可以知道哪些位置的密度較高。在圖中,白點(diǎn)是中位數(shù),黑色盒型的范圍是下四分位點(diǎn)到上四分位點(diǎn),細(xì)黑線表示須。外部形狀即為核密度估計(jì)(在概率論中用來估計(jì)未知的密度函數(shù),屬于非參數(shù)檢驗(yàn)方法之一)。【例5-45】琴圖繪制。5.2.2Seaborn中的常用繪圖sns.set_style("whitegrid")ax=sns.violinplot(x=df_iris['Petal.Length'])6.柱狀圖在Seaborn中使用barplot函數(shù)繪制柱狀圖,默認(rèn)情況下,繪制的y軸是平均值?!纠?-46】利用barplot繪制柱狀圖。5.2.2Seaborn中的常用繪圖sns.barplot(x=df_iris['Species'],y=df_iris['Petal.Length'],data=df_iris)在柱狀圖中,經(jīng)常會繪制類別的計(jì)數(shù)柱狀圖,在matplotlib中需要對DataFrame進(jìn)行計(jì)算,而在Seaborn中則使用countplot函數(shù)即可?!纠?-47】利用countplot繪制計(jì)數(shù)柱狀圖。5.2.2Seaborn中的常用繪圖importseabornassnsimportmatplotlib.pyplotaspltsns.set(style="darkgrid",font_scale=1.2)titanic=sns.load_dataset("titanic")plt.subplot(1,2,1)sns.countplot(x="class",hue="who",data=titanic)plt.subplot(1,2,2)sns.countplot(x="who",data=titanic,facecolor=(0,0,0,0),linewidth=5,edgecolor=sns.color_palette("dark",3))plt.show()7.多變量圖在Matplotlib中,為了繪制兩個(gè)變量的分布關(guān)系,常使用散點(diǎn)圖的方法。在Seaborn中,使用jointplot函數(shù)繪制一個(gè)多面板圖,不僅可以顯示兩個(gè)變量的關(guān)系,還可以顯示每個(gè)單變量的分布情況?!纠?-48】利用jointplot函數(shù)繪制多面板圖。5.2.2Seaborn中的常用繪圖sns.jointplot(x='Petal.Length',y='Petal.Width',data=df_iris)在jointplot函數(shù)中,改變kind參數(shù)為kde,但變量的分布就用密度圖來代替,而散點(diǎn)圖則會被等高線圖代替?!纠?-49】利用jointplot方法繪制等高線圖。5.2.2Seaborn中的常用繪圖sns.jointplot(x='Petal.Length',y='Petal.Width',data=df_iris,kind='kde')8.回歸圖繪制回歸圖可以揭示兩個(gè)變量間的線性關(guān)系。Seaborn中,使用regplot函數(shù)繪制回歸圖?!纠?-50】使用regplot函數(shù)繪制回歸圖。5.2.2Seaborn中的常用繪圖sns.regplot(x='Petal.Length',y='Petal.Width',data=df_iris)9.關(guān)系類圖Seaborn中的relplot方法關(guān)注的是統(tǒng)計(jì)量之間的關(guān)系,利用kind參數(shù)設(shè)置,可以繪制出曲線圖和散點(diǎn)圖。Relplot方法的必選參數(shù)有以下幾個(gè):x,y為數(shù)據(jù)中變量的名稱,一般為數(shù)值型數(shù)據(jù);data是DataFrame類型的數(shù)據(jù)表;kind指定繪圖類型,取值為“scatter”相當(dāng)于scatterplot(),用來繪制散點(diǎn)圖,取值“l(fā)ine”相當(dāng)于lineplot(),用來繪制曲線。Kind缺省取值為"scatter"?!纠?-51】繪制tips數(shù)據(jù)集中小費(fèi)總額和小費(fèi)的關(guān)系圖。5.2.2Seaborn中的常用繪圖importseabornassnstips=sns.load_dataset('tips')sns.set(style="ticks",font_scale=1.5)sns.relplot(x="total_bill",y="tip",data=tips)#g=sns.relplot(x="total_bill",y="tip",hue="day",data=tips)g=sns.relplot(x="total_bill",y="tip",hue="day",col="time",data=tips)5.2.2Seaborn中的常用繪圖10熱力圖熱力圖是數(shù)據(jù)可視化項(xiàng)目中比較常用的數(shù)據(jù)顯示方式。熱力圖通過顏色變化程度直觀反應(yīng)出熱點(diǎn)分布,區(qū)域聚集等數(shù)據(jù)信息。熱力圖實(shí)現(xiàn)過程就是通過簡單的數(shù)學(xué)變化,將離散的點(diǎn)信息映射為圖像?!纠?-52】繪制flights數(shù)據(jù)集中年份、月份和乘客數(shù)據(jù)的熱力圖。5.2.2Seaborn中的常用繪圖importseabornassnsflights=sns.load_dataset("flights")flights=flights.pivot("month","year","passengers")display(flights)sns.heatmap(flights,alpha=0.7)pyecharts是基于Echart圖表的一個(gè)類庫,而Echart是百度開源的一個(gè)可視化JavaScript庫。pyecharts主要基于web瀏覽器進(jìn)行顯示,繪制的圖形比較多,包括折線圖、柱狀圖、餅圖、漏斗圖、地圖、極坐標(biāo)圖等,代碼量很少,而且很靈活,繪制出來的圖形很美觀。使用pyecharts時(shí),需要安裝相應(yīng)的庫,安裝命令為:pipinstallpyecharts5.3pyecharts數(shù)據(jù)可視化5.3pyecharts數(shù)據(jù)可視化5.3.1pyecharts的使用方法圖形繪制過程,基本上所有的圖表類型都是這樣繪制的:chart_name=Type()

#初始化具體類型圖表chart_name.add()

#添加數(shù)據(jù)及配置項(xiàng)chart_name.render()

#生成本地文件(html/svg/jpeg/png/pdf/gif)chart_name.render_notebook

#在jupyternotebook中顯示1.柱狀圖利用Bar方法可以繪制柱狀圖。方法及說明

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論