




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
~1~第十三章Matplotlib數(shù)據(jù)可視化目錄Matplotlib概述Matplotlib的繪圖基礎基本繪圖Pandas可視化-2-1.Matplotlib概述Matplotlib是Python中功能強大且廣泛使用的二維繪圖庫之一,適用于數(shù)據(jù)科學、工程、金融等領域的多種數(shù)據(jù)可視化任務。它提供了一整套靈活的工具,可以生成多種類型的靜態(tài)、動態(tài)和交互式圖形。在現(xiàn)代數(shù)據(jù)分析中,數(shù)據(jù)可視化不僅能夠直觀呈現(xiàn)數(shù)據(jù),還能揭示隱藏的模式和趨勢。Matplotlib通過豐富的圖表類型和靈活的定制功能,能夠高效完成從基礎繪圖到復雜分析的多樣化任務。無論是基礎的折線圖、柱狀圖,還是更復雜的散點圖、熱圖,Matplotlib都能夠輕松實現(xiàn)。Matplotlib的安裝與導入要使用Matplotlib,首先需要在Python環(huán)境中進行安裝。通過以下命令完成安裝:pipinstallmatplotlib安裝完成后,可以在Python程序或交互式環(huán)境中導入Matplotlib庫的pyplot模塊:importmatplotlib.pyplotaspltpyplot是Matplotlib中最常用的模塊,提供了一組類似MATLAB的簡單函數(shù)接口,用于快速創(chuàng)建和管理圖形。它簡化了繪圖任務,能夠輕松生成各種圖表并進行顯示。32.Matplotlib的繪圖基礎Figure和Axes的概念(1)Figure:Figure是整個繪圖的容器,類似一張畫布,所有圖形元素都在Figure中繪制。創(chuàng)建Figure對象時可以指定畫布的大小和分辨率。importmatplotlib.pyplotaspltfig=plt.figure(figsize=(8,6))#創(chuàng)建一個8x6英寸的Figure一個Figure對象可以包含多個Axes對象,每個Axes對象對應一個獨立的子圖。(2)Axes:Axes是Figure中的子區(qū)域,實際的繪圖內容都繪制在Axes對象上。Axes包含兩個坐標軸(x軸和y軸),以及標題、標簽等附加信息。一個Figure可以包含多個Axes,每個Axes可對應不同的子圖。ax=fig.add_subplot(111)上述代碼中,add_subplot(111)表示在一個1行1列的網(wǎng)格中添加第1個子圖。這種方式適合創(chuàng)建單一子圖。若需創(chuàng)建多個子圖,可以使用add_subplot或plt.subplots()方法來高效管理多個Axes。fig,axes=plt.subplots(2,2)#創(chuàng)建一個包含2x2網(wǎng)格子圖的Figure43.基本繪圖折線圖(LinePlot):是數(shù)據(jù)可視化中最常用的圖表之一,用于展示數(shù)據(jù)隨時間或某一變量的變化趨勢。Matplotlib提供了簡單靈活的折線圖繪制功能。(1)繪制簡單折線圖可以使用plt.plot()函數(shù)快速繪制折線圖。以下是一個基本示例:importmatplotlib.pyplotaspltx=[1,2,3,4,5]y=[2,3,5,7,11]plt.plot(x,y)#繪制折線圖plt.show()#顯示圖形在該例中,首先導入了matplotlib.pyplot模塊,然后plt.plot(x,y)繪制了一條通過數(shù)據(jù)點(1,2)、(2,3)、(3,5)等連接而成的折線。plt.show()用于顯示繪制的圖形。5(2)自定義折線樣式、顏色與軸標簽為了使圖形更加清晰直觀,可以通過參數(shù)自定義折線樣式、顏色,并添加標題和軸標簽。importmatplotlib.pyplotaspltx=[1,2,3,4,5]y=[2,3,5,7,11]plt.plot(x,y,color='red',linestyle='--',marker='o')#自定義樣式plt.title('NumbersLinePlot')#設置標題plt.xlabel('X-axis:Numbers')#設置x軸標簽plt.ylabel('Y-axis:Values')#設置y軸標簽plt.show()在該例中,plt.plot()方法中的參數(shù)color='red'指定了折線的顏色,linestyle='--'指定了虛線樣式,marker='o'則在每個數(shù)據(jù)點上添加了圓形標記。Matplotlib支持多種顏色(如'blue','green')和樣式(如'-'表示實線,':'表示點線),并可通過marker參數(shù)選擇不同的標記形狀(如's'表示方塊,'^'表示三角形等)。plt.title()設置了圖形的標題,plt.xlabel()和plt.ylabel()分別設置了x軸和y軸的標簽。這些信息有助于讀者更好地理解圖形的含義。6散點圖(ScatterPlot):用于展示兩組數(shù)據(jù)之間的關系,尤其適合顯示數(shù)據(jù)的分布和相關性。Matplotlib提供的plt.scatter()函數(shù)可以快速生成散點圖,并支持多種自定義選項。以下是使用Matplotlib繪制簡單散點圖并添加注釋:importmatplotlib.pyplotaspltx=[1,2,3,4,5]y=[2,4,4,8,10]plt.scatter(x,y,color='blue',s=100,marker='^')#繪制散點圖plt.text(3.1,4,'ImportantPoint',fontsize=12,color='red')plt.show()在該例中,plt.scatter(x,y)繪制了一個散點圖,每個點表示x和y之間的對應關系,其中color='blue'設置了點的顏色,s=100設置了點的大小,marker='^'將點的形狀改為三角形。plt.text(3.1,4,'ImportantPoint')在點(3.1,4)`附近添加了注釋"ImportantPoint"。7條形圖(BarPlot):用于比較不同類別的數(shù)據(jù)值,是展示分類數(shù)據(jù)的理想選擇。Matplotlib提供的plt.bar()和plt.barh()函數(shù)可以分別繪制垂直和水平條形圖。此外,還支持繪制多組條形圖,用于比較不同類別之間的多組數(shù)據(jù)。(1)繪制垂直條形圖以下示例展示了如何使用Matplotlib繪制一個簡單的垂直條形圖:importmatplotlib.pyplotaspltcategories=['A','B','C','D']values=[5,7,3,8]plt.bar(categories,values)#繪制垂直條形圖plt.show()在該例中,plt.bar(categories,values)根據(jù)類別categories和對應值values繪制垂直條形圖,條形的高度表示數(shù)據(jù)值,橫軸表示類別。8直方圖(Histogram):用于展示數(shù)據(jù)的分布情況,特別是展示數(shù)據(jù)的頻率分布。通過Matplotlib提供的plt.hist()函數(shù),可以生成直方圖并進行自定義設置。importmatplotlib.pyplotaspltdata=[1,2,2,3,3,3,4,4,4,4,5,5,5,5,5]plt.hist(data,bins=5,rwidth=0.8)#繪制直方圖plt.show()在該例中,plt.hist(data,bins=5,rwidth=0.8)使用5個柱來表示數(shù)據(jù)的頻率分布,rwidth=0.8指定了柱的寬度為80%。9餅圖(PieChart):用于展示數(shù)據(jù)各部分在整體中所占的比例,通常用于構成分析,適合反映比例分布。Matplotlib提供的plt.pie()函數(shù)可以生成餅圖,并支持多種自定義選項。。importmatplotlib.pyplotaspltsales=[25000,15000,10000,5000]#定義季度銷售數(shù)據(jù)quarters=['Q1','Q2','Q3','Q4']#季度標簽#設置顏色和高亮顯示特定部分colors=['gold','yellowgreen','lightcoral','lightskyblue']explode=(0.1,0,0,0)#高亮顯示Q1plt.pie(sales,explode=explode,labels=quarters,colors=colors,autopct='%1.1f%%',shadow=True,startangle=90)#繪制餅圖plt.title("CompanyQuarterlySalesDistribution")#公司季度銷售分布plt.show()在該例中,plt.pie()函數(shù)的參數(shù)explode用于突出顯示某個部分(第一季度),labels為每個部分的名稱,autopct='%1.1f%%'指定了每個部分的百分比顯示格式,startangle=90指定起始角度,可調整餅圖旋轉角度。104.Pandas的可視化Pandas不僅用于數(shù)據(jù)處理,還提供了基本的可視化功能。Pandas的數(shù)據(jù)結構,如DataFrame和Series,可以直接調用繪圖方法,利用Matplotlib的底層支持,實現(xiàn)基本的可視化需求。這些繪圖方法提供了簡潔的接口,能夠快速生成折線圖、柱狀圖、直方圖等常見圖形,方便數(shù)據(jù)分析的快速展示與探索。11示例:使用Pandas的plot()方法生成柱狀圖,并對銷售額和支出數(shù)據(jù)進行可視化:importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltdata={'Month':['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],'Sales':np.random.randint(200,500,12),#銷售額
'Expenses':np.random.randint(150,400,12)#支出}df=pd.DataFrame(data)df.set_index('Month',inplace=True)#設置索引ax=df.plot(kind='bar',figsize=(10,6),title="MonthlySalesandExpenses",rot=0)#使用Pandas的plot方法繪制柱狀圖ax.set_xlabel("Month")#設置x軸標簽ax.set_ylabel("Amount")#設置y軸標簽plt.show()在上述代碼中,首先創(chuàng)建包含月份、銷售額和支出數(shù)據(jù)的DataFrame對象,并將月份設為索引,使其成為圖形的x軸。然后使用df.plot(kind='bar')方法直接調用柱狀圖,通過kind參數(shù)指定圖表類型為bar,figsize參數(shù)設置圖表尺寸,title添加圖表標題,rot參數(shù)調整x軸標簽的旋轉角度。最后通過ax.set_xlabel()和ax.set_ylabel()分別設置x軸和y軸的標簽。12示例:使用Pandas的plot()方法繪制折線圖#繪制折線圖,只修改上例中的一行代碼ax=df.plot(kind='line',figsize=(10,6),title="MonthlySalesandExpenses",marker='o')#kind='line'指定折線圖kind='line':指定圖表類型為折線圖。marker='o':為每個數(shù)據(jù)點添加圓形標記。13示例:使用Pandas的plot()方法繪制餅圖,通過kind='pie'參數(shù)繪制餅圖。注意:餅圖通常用來顯
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 投資類公司運營管理制度
- 單位辦公室經(jīng)濟管理制度
- 手工藝品培訓班管理制度
- 嬰幼兒托育健康管理制度
- 大公司人工成本管理制度
- 施工項目工程管理制度
- 公司證照及印章管理制度
- 幼兒園托管機構管理制度
- 分時段分散就餐管理制度
- ppp項目安全管理制度
- 環(huán)境心理學永川觀音山公園調研報告
- 報價單模板完整版
- 2023年山東軍轉真題
- 國開電大專科《管理英語1》機考總題庫
- 2023年杭州育才中學小升初語文考試真題卷含標準答案
- 《水產(chǎn)動物營養(yǎng)與飼料》期末考試復習題及參考答案
- SB/T 11067-2013金屬材料倉儲技術與管理規(guī)范
- 工業(yè)品營銷-七重攻略
- 2023年安徽六安市裕安區(qū)城鄉(xiāng)建設投資集團有限公司招聘筆試題庫及答案解析
- LY/T 1529-2020普通膠合板生產(chǎn)綜合能耗
- JJF 1458-2014磁軛式磁粉探傷機校準規(guī)范
評論
0/150
提交評論