大數(shù)據(jù)Matplotlib基礎繪圖課件_第1頁
大數(shù)據(jù)Matplotlib基礎繪圖課件_第2頁
大數(shù)據(jù)Matplotlib基礎繪圖課件_第3頁
大數(shù)據(jù)Matplotlib基礎繪圖課件_第4頁
大數(shù)據(jù)Matplotlib基礎繪圖課件_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、Matplotlib基礎繪圖1分析特征關系常用圖形目錄Matplotlib繪圖基礎2分析特征內(nèi)部數(shù)據(jù)狀態(tài)常用圖形3小結4Matlplotlib繪圖基礎Matplotlib是Python下的2D繪圖庫,也是最著名的Python繪圖庫。雖然Matlpotlib的代碼庫很龐大,但是可以通過簡單的概念框架和重要的知識來理解掌握。Matplotlib圖像可以分為如下4層結構。canvas(畫板)。位于最底層,導入Matplotlib庫時就自動存在。figure(畫布)。建立在canvas之上,從這一層就能開始設置其參數(shù)。axes(子圖)。將figure分成不同塊,實現(xiàn)分面繪圖。圖表信息(構圖元素)。添加

2、或修改axes上的圖形信息,優(yōu)化圖表的顯示效果。為了方便快速繪圖,Matplotlib通過pyplot模塊提供了一套與Matlab類似的命令API,這些API對應圖形的一個個圖形元素(如坐標軸、曲線、文字等),并以此對該圖形元素進行操作,而不影響其他部分。創(chuàng)建好畫布后,只需調用pyplot模塊所提供的函數(shù),僅幾行代碼就可以實現(xiàn)添加、修改圖形元素或在原有圖形上繪制新圖形。編號風格基礎流程根據(jù)Matplotlib圖像的4層圖像結構,pyplot模塊繪制圖形基本都遵循一個流程,使用這個流程可以完成大部分圖形的繪制。pyplot模塊基本繪圖流程主要分為3個部分,如下圖所示。編號風格基礎流程導入模塊。繪

3、圖之前,需要先導入包含相應函數(shù)的模塊。對于pyplot模塊,一般使用如下風格導入。創(chuàng)建畫布與創(chuàng)建子圖。第一部分主要是構建出一張空白的畫布,如果需要同時展示幾個圖形,可將畫布劃分為多個部分。然后使用對象方法來完成其余的工作,示例如下。編號風格基礎流程添加畫布內(nèi)容。第二部分是繪圖的主體部分。添加標題、坐標軸名稱等步驟與繪制圖形是并列的,沒有先后順序,可以先繪制圖形,也可以先添加各類標簽,但是添加圖例一定要在繪制圖形之后。pyplot模塊中添加各類標簽和圖例的函數(shù)如下表所示。函數(shù)名稱函數(shù)作用title在當前圖形中添加標題,可以指定標題的名稱、位置、顏色、字體大小等參數(shù)xlabel在當前圖形中添加x軸

4、名稱,可以指定位置、顏色、字體大小等參數(shù)ylabel在當前圖形中添加y軸名稱,可以指定位置、顏色、字體大小等參數(shù)xlim指定當前圖形x軸的范圍,只能確定一個數(shù)值區(qū)間,而無法使用字符串標識ylim指定當前圖形y軸的范圍,只能確定一個數(shù)值區(qū)間,而無法使用字符串標識xticks指定x軸刻度的數(shù)目與取值yticks指定y軸刻度的數(shù)目與取值legend指定當前圖形的圖例,可以指定圖例的大小、位置、標簽編號風格基礎流程圖形保存與展示。繪制圖形之后,可使用matplotlib.pyplot.savefig()函數(shù)保存圖片到指定路徑,使用matplotlib.pyplot.show()函數(shù)展示圖形。綜合整體流

5、程繪制函數(shù)“y=x2”與“y=x”圖形,得到的圖形如下圖所示。編號風格基礎流程通常情況下,在使用不同的數(shù)據(jù)重復的繪制同樣的圖形時,選擇自編函數(shù)來進行繪圖。有時候也會需要在圖上添加文本標注。pyplot模塊中,使用matplotlib.pyplot.text()函數(shù)能夠在任意位置添加文本,其使用基本語法如下。matplotlib.pyplot.text(x, y, s, fontdict=None, withdash=False, *kwargs)使用自編函數(shù)繪圖并添加文本得到的圖形如右圖所示。編號風格繪圖風格Matplotlib中,pyplot的style子模塊里面定義了很多預設風格,方便進行

6、風格轉換。每一個預設的風格都儲存在一個以.mplstyle為后綴的style文件中。讀者可以在stylelib文件夾中查看,如下圖所示。編號風格繪圖風格通過print(plt.style.available)命令可以查看所有預設風格的名稱,使用use函數(shù)就可以直接設置預設風格,得到的圖形如下圖所示。動態(tài)rc參數(shù)pyplot模塊使用rc配置文件來自定義圖形的各種默認屬性,稱之為rc配置或rc參數(shù)。通過修改rc參數(shù)可以修改默認的屬性,包括窗體大小、每英寸的點數(shù)、線條寬度、顏色、樣式、坐標軸、坐標和網(wǎng)絡屬性、文本、字體等。Matplotlib將默認參數(shù)配置保存在“matplotlibrc”文件中,通

7、過修改配置文件,可修改圖表的缺省樣式。查看默認配置的方法如下。直接打開matplotlibrc文件。print(matplotlib.rc_params()命令。print(matplotlib.rcParamsDefault)命令。print(matplotlib.rcParams)命令。動態(tài)rc參數(shù)在Matplotlib中可以使用如下多個“matplotlibrc”配置文件,并且調用時按照該排序優(yōu)先采用。當前路徑:程序的當前路徑。用戶配置路徑:在用戶文件夾的“.matplotlib”目錄下,可通過環(huán)境變量matplotlibrc修改它的位置。通過matplotlib.get_configd

8、ir()函數(shù)可以獲得該路徑。系統(tǒng)配置路徑:保存在Matplotlib的安裝目錄下的mpl-data文件夾中。在Matplotlib庫載入時會調用rc_params函數(shù),并把得到的配置字典保存到rcParams變量中。通過修改字典的方式或用matplotlib.rc()函數(shù)修改rc參數(shù)。修改默認rc參數(shù)后,圖形對應屬性就會發(fā)生改變。此處將介紹常用的rc參數(shù),包括線條、坐標軸、字體等。動態(tài)rc參數(shù)線條常用的rc參數(shù)管理線條屬性的rc參數(shù)lines幾乎可以控制線條的每一個細節(jié),線條常用的rc參數(shù)修改前后對比示例如右圖所示。動態(tài)rc參數(shù)線條常用的rc參數(shù)針對線條常用的rc參數(shù)名稱、解釋與取值如下表所示

9、。rc參數(shù)名稱解釋取值lines.linewidth線條寬度取010之間的數(shù)值,默認為1.5lines.linestyle線條樣式可取“-”“-”“-.”“:”四種。默認為“-”lines.marker線條上點的形狀可取“o”“D”“h”“.”“,”“S”等20種,默認為Nonelines.markersize點的大小取010之間的數(shù)值,默認為1linestyle取值意義linestyle取值意義-實線-.點線-長虛線:短虛線其中l(wèi)ines.linestyle參數(shù)4種取值的意義如下表所示。動態(tài)rc參數(shù)線條常用的rc參數(shù)lines.marker參數(shù)的20種取值及其所代表的意義,如下表所示。mar

10、ker取值意義marker取值意義o圓圈.點D菱形s正方形h六邊形1*星號H六邊形2d小菱形-水平線v一角朝下的三角形8八邊形一角朝右的三角形,像素一角朝上的三角形+加號豎線None無xX動態(tài)rc參數(shù)坐標軸常用的rc參數(shù)同樣,管理坐標軸屬性的rc參數(shù)axes也能控制坐標軸的任意細節(jié)。坐標軸常用的rc參數(shù)修改如下代碼所示。In6:x = np.linspace(0, 10, 1000)plt.plot(x, np.sin(x)plt.show()Out6:動態(tài)rc參數(shù)坐標軸常用的rc參數(shù)In7:x = np.linspace(0, 10, 1000)plt.rcParamsaxes.edgeco

11、lor = b # 軸顏色設置為藍色plt.rcParamsaxes.grid = True # 添加網(wǎng)格plt.rcParamsaxes.spines.top = False # 去除頂部軸plt.rcParamsaxes.spines.right = False # 去除右側軸plt.rcParamsaxes.xmargin = 0.1 # x軸余留為區(qū)間長度的0.1倍plt.plot(x, np.sin(x)plt.show()Out7:動態(tài)rc參數(shù)坐標軸常用的rc參數(shù)更多的坐標軸常用的rc參數(shù)名稱、解釋、取值如下表所示。rc參數(shù)名稱解釋取值axes.facecolor背景顏色接收顏色簡

12、寫字符。默認為“w”axes.edgecolor邊線顏色接收顏色簡寫字符。默認為“k”axes.linewidth軸線寬度接收01的float。默認為0.8axes.grid添加網(wǎng)格接收bool。默認為Falseaxes.titlesize標題大小接收“small”,“medium”,“l(fā)arge”。默認為“l(fā)arge”axes.labelsize軸標大小接收“small”,“medium”,“l(fā)arge”。默認為“medium”axes.labelcolor軸標顏色接收顏色簡寫字符。默認為“k”axes.spines.left,bottom,top,tight添加坐標軸接收bool。默認為T

13、rueaxes.x,ymargin軸邊距接收float。默認為0.05動態(tài)rc參數(shù)字體常用的rc參數(shù)由于默認的pyplot字體并不支持中文字符的顯示,因此需要通過修改font.sans-serif參數(shù)來修改繪圖時的字體,使得圖形可以正常顯示中文。同時,由于修改字體后,會導致坐標軸中負號“-”無法正常顯示,因此需要同時修改axes.unicode_minus參數(shù)。參數(shù)修改前后對比如下左圖和右圖所示。動態(tài)rc參數(shù)字體常用的rc參數(shù)除字體與符號編碼參數(shù)外,更多的字體常用rc參數(shù)名稱、接收、取值如下表所示。rc參數(shù)名稱解釋取值font.family字體族,每一個族對應多種字體接收serif,sans-

14、serif,cursive,fantasy,monospace5種str。默認為sans-seriffont.style字體風格,正?;蛄_馬體及斜體接收normal(roman),italic,oblique這3種str。默認為normalfont.variant字體變化接收normal或small-caps。默認為normalfont.weight字體重量接收normal,bold,bolder,lighter這4種str,以及100,200,900。默認為normalfont.stretch字體延伸接收ultra-condensed,extra-condensed,condensed,se

15、mi-condensed,normal,semi-expanded,expanded,extra-expanded,ultra-expanded,wider,and narrower這11種str。默認為normalfont.size字體大小接收float。默認為101分析特征關系常用圖形目錄Matplotlib繪圖基礎2分析特征內(nèi)部數(shù)據(jù)狀態(tài)常用圖形3小結4散點圖散點圖(Scatter Diagram)又稱為散點分布圖,是以利用坐標點(散點)的分布形態(tài)反映特征間的相關關系的一種圖形。實際中一般使用二維散點圖,通過散點的疏密程度和變化趨勢表示兩個特征間關系。散點圖有以下3個特點。表現(xiàn)特征之間是否

16、存在數(shù)值或者數(shù)量的關聯(lián)趨勢,關聯(lián)趨勢是線性的還是非線性的。凸顯出離群點(異常點),及對整體的影響。數(shù)據(jù)量越大,能發(fā)揮的作用越好。pyplot模塊中使用scatter函數(shù)繪制散點圖,其使用語法如下。matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, hold=None, data=None, *kwargs)散點圖scatte

17、r函數(shù)常用參數(shù)及其說明如下表所示。參數(shù)名稱說明x,y接收array。表示x軸和y軸對應的數(shù)據(jù)。無默認值s接收數(shù)值或者一維的array。指定點的大小,若傳入一維array則表示每個點的大小。默認為Nonec接收顏色或者一維的array。指定點的顏色,若傳入一維array則表示每個點的顏色。默認為Nonemarker接收特定str。表示繪制的點的類型,參照表 84。默認為Nonealpha接收01的小數(shù)。表示點的透明度。默認為None散點圖使用scatter函數(shù)繪制20002017年各季度的國民生產(chǎn)總值散點圖,如右圖所示。散點圖繪制20002017年第一產(chǎn)業(yè)、第二產(chǎn)業(yè)、第三產(chǎn)業(yè)各季度的國民生產(chǎn)總值

18、散點圖,如右圖所示。折線圖折線圖(Line Chart)是將“散點”按照橫坐標順序用線段依次連接起來的圖形。以折線的上升或下降,表示某一特征隨另外一特征變化的增減以及總體變化趨勢。一般用于展現(xiàn)某一特征隨時間的變化趨勢。pyplot模塊中使用plot函數(shù)繪制折線圖,其使用語法如下。matplotlib.pyplot.plot(*args, *kwargs)plot函數(shù)在官方文檔的語法中只要求填入不定長參數(shù),實際可以填入的主要參數(shù),如下表所示。參數(shù)名稱說明x,y接收array。表示x軸和y軸對應的數(shù)據(jù)。無默認值color接收特定str。指定線條的顏色。默認為Nonelinestyle接收特定str

19、。指定線條類型,參照表 83。默認為“-”marker接收特定str。表示繪制的點的類型,參照表 84。默認為Nonealpha接收01的小數(shù)。表示點的透明度。默認為None折線圖其中color參數(shù)的8種常用顏色的縮寫如下表所示。顏色縮寫代表的顏色顏色縮寫代表的顏色b藍色m品紅g綠色y黃色r紅色k黑色c青色w白色折線圖使用plot函數(shù)繪制20002017年各產(chǎn)業(yè)第一季度季度生產(chǎn)總值折線圖,如右圖所示。折線圖plot函數(shù)可以一次接收“多組”參數(shù),同時繪制多條折線圖。向plot函數(shù)傳遞繪制第一個圖形的參數(shù),用逗號分隔后繼續(xù)傳遞繪制第二個圖形的參數(shù)即可,繪制得到的圖形如下圖所示。1分析特征關系常用圖

20、形目錄Matplotlib繪圖基礎2分析特征內(nèi)部數(shù)據(jù)狀態(tài)常用圖形3小結4直方圖與條形圖直方圖直方圖(Histogram)又稱頻數(shù)直方圖,由一系列寬度相等、長度不等的長方形來展示特征的頻數(shù)情況。長方形的寬度表示組距(數(shù)據(jù)范圍的間隔),長度表示在給定間隔內(nèi)的頻數(shù)(或頻率)與組距的比值,以長方形的面積來表示頻數(shù)(或頻率)。由于分組數(shù)據(jù)具有連續(xù)性,直方圖的長方形通常是連續(xù)排列的。直方圖可以比較直觀地展現(xiàn)特征內(nèi)部數(shù)據(jù),便于分析其分布情況。pyplot中使用hist函數(shù)繪制直方圖,其基本使用語法如下。matplotlib.pyplot.hist(x, bins=10, range=None, normed

21、=True, weights=None, cumulative=False, bottom=None, histtype=ubar, align=uleft, orientation=uvertical, rwidth=0.8, logmatplotlib.pyplot.hist(x, bins=None, range=None, density=None, weights=None, cumulative=False, bottom=None, histtype=bar, align=mid, orientation=vertical, rwidth=None, log=False, col

22、or=None, label=None, stacked=False, normed=None, hold=None, data=None, *kwargs)=False, color=None, label=None, stacked=False, hold=None)直方圖與條形圖直方圖hist函數(shù)常用參數(shù)及其說明如下表所示。參數(shù)名稱說明x接收array。表示x軸數(shù)據(jù)。無默認值bins接收int或sequence。表示長方形條數(shù)。默認為“auto”range接收tuple。篩選數(shù)據(jù)范圍。默認為None(最小到最大的取值范圍)normed接收bool。表示選擇頻率圖還是頻數(shù)圖。默認為True

23、rwidth接收01。表示長方形的寬度。默認為None直方圖與條形圖直方圖為了較好的展示效果,使用生成服從標準正態(tài)分布的數(shù)據(jù)繪制直方圖,如下圖所示。直方圖與條形圖條形圖條形圖(Bar Chart)也是由一系列寬度相等、高度不等的長方形來展示特征的頻數(shù)情況。但條形圖主要展示分類數(shù)據(jù),一個長方形代表特征的一個類別,長度代表該類別的頻數(shù),寬度沒有數(shù)學意義。相較于面積,肉眼對于高度要敏感許多,故能很好顯示數(shù)據(jù)間的差距。條形圖不同類別之間是有空隙的。pyplot中使用bar函數(shù)繪制條形圖,其基本使用語法如下。matplotlib.pyplot.bar(*args, *kwargs)bar函數(shù)在官方文檔中

24、只要求輸入不定長參數(shù),但其主要參數(shù)如下表所示。參數(shù)名稱說明x接收array。表示x軸的位置序列。無默認值height接收array。表示x軸所代表數(shù)據(jù)的數(shù)量(長方形長度)。無默認值width接收01之間的float。指定直方圖寬度。默認為0.8color接收特定str或者包含顏色字符串的array。表示直方圖顏色。默認為None直方圖與條形圖條形圖使用bar函數(shù)繪制2017年第一季度各產(chǎn)業(yè)國民生產(chǎn)總值條形圖,如下圖所示。餅圖餅圖(Pie Graph)用于表示不同類別的占比情況,通過弧度大小來對比各種類別。餅圖通過將一個圓餅按照類別的占比劃分成多個區(qū)塊,整個圓餅代表數(shù)據(jù)的總量,每個區(qū)塊(圓弧)表

25、示該分類占總體的比例大小。餅圖可以比較清楚地反映出部分與部分、部分與整體之間的比例關系,易于每個類別相對于總數(shù)的大小。但因為對于面積大小的不敏感,某些情況下效果不是很好。pyplot模塊中使用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, counterclock=True, wedgepro

26、ps=None, textprops=None, center=(0, 0), frame=False, hold=None, data=None)餅圖pie函數(shù)常用參數(shù)及其說明如下表所示。參數(shù)名稱說明x接收array。表示用于繪制餅圖的數(shù)據(jù)。無默認值explode接收array。表示指定項離餅圖圓心為n個半徑。默認為Nonelabels接收array。指定每一項的名稱。默認為Nonecolor接收特定str或者包含顏色字符串的array。表示餅圖顏色。默認為Noneautopct接收特定str。指定數(shù)值的顯示方式。默認為Nonepctdistance接收float。指定每一項的比例和距離餅圖

27、圓心n個半徑。默認為0.6labeldistance接收float。指定每一項的名稱和距離餅圖圓心n個半徑。默認為1.1radius接收float。表示餅圖的半徑。默認為1餅圖繪制2000年與2016年產(chǎn)業(yè)結構餅圖,展示17年來產(chǎn)業(yè)結構變化,如下圖所示。箱線圖箱線圖(Box Plot)又稱箱須圖,是利用數(shù)據(jù)中的最小值、上分位數(shù)、中位數(shù)、下四分位數(shù)與最大值這5個統(tǒng)計量來描述連續(xù)型特征變量的一種方法。它也可以粗略地看出數(shù)據(jù)是否具有對稱性,分布的分散程度等信息,特別可以用于對幾個樣本的比較。箱線圖的構成與含義如下圖所示。箱線圖箱線圖的上邊緣為最大值,下邊緣為最小值,但范圍不超過盒型各端加1.5倍IQR(四分位距,即上四分位數(shù)與下四分位數(shù)的極差)的距離。超出上下邊緣的值即視為異常值。pyplot模塊中使用boxplot函數(shù)繪制箱線圖,其基本使用語法如下。matplotlib.pyplot.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None, b

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論