程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python Matplotlib繪圖基礎詳細教程

編輯:Python

目錄

1. 畫圖的基本步驟

1.1一步一步看

2.散點圖

3.條形圖的繪制

4.四幅子圖的繪制

5.餅狀圖的繪制

6.熱力圖的繪制

總結

plt是最常用的接口

1. 畫圖的基本步驟

1.導入模塊

import matplotlib as mplimport matplotlib.pyplot as plt

2.創建畫板,然後對畫板進行調整

3.定義數據

4.繪制圖形(包含坐標軸的設置,數據的導入,線條的樣式,顏色,還有標題,圖例,等等)

5.plt.show()

1.1一步一步看

1.1.1**(一)第一步:創建並定義一個"畫板"**(你將要在你定義的畫板上面進行畫圖操作).

fig=plt.figure()#定義一張畫板命名為fig

在plt.figure()括號裡面還有一些參數

例如:

huaban=plt.figure(figsize=(6,10),facecolor='b',dpi=500)#figsize是調整你的圖像的比例大小,上面所示就是:長/寬=6/10#facecolor是設置畫板的背景顏色,一般顏色代碼為英文的首字母#dpi設置圖像的分辨率,分辨率越圖像越清晰#edgcolor是設置邊框顏色的參數

1.1.2**(二).第二步:定義你的x,y數據**

這裡我們使用numpy庫函數來制造一些數據

所以我們還得導入numpy函數

import numpy as np#設置xy的值x=np.linspace(-5,5,11)#這裡就是把-5到5平均分成十一份,(-5,-4,-3,.....)y=[1,6,3,-3,6,8,3,6,9,1,-5]

1.1.3**(三).第三步:設置x,y軸的大小,刻度,…**

#添加p1到畫板p1=fig.add_subplot(111)#這裡的111是指把畫板分成一行一列,把p1添加到第一副圖#限制函數坐標軸的長度p1.axis([-5,5,-10,10])#x軸長度為-5到5,y軸長度為-10到10#設置x,y軸的刻度plt.xticks(x)plt.yticks(y)#這裡是指:x,y軸的刻度為之前定義的x,y數據列表#設置坐標軸的上下限plt.xlim(-5,5)plt.ylim(-10,10)

1.1.4(四).繪制圖像,導入x,y數據,設置線條樣式,顏色,粗細,添加圖例,標題…

#繪制圖像p1.plot(x,y,marker='o',ms=5,lw=2,ls='--',label='band')#x,y就是最開始定義的數據#marker是設置拐點樣式:o/h/^/./+等等#ms是設置拐點的標記大小#lw就是設置線條粗細,數值越大線條越粗#ls是設置線條樣式,這裡'--'為虛線#label是設置此線條的名稱標題p1.legend(loc='best')#添加圖例,其中best是指將圖例的位置添加到最佳位置,#你也可以自己設置位置,例如:upper left(左上角)#添加標題plt.title('NUM',fontsize=24)#設置圖像的標題,fontsize是設置標題文字的大小plt.xlabel('Value',fontsize=14)#設置x軸的標題plt.ylabel('ARG',fontsize=14)#設置y軸的標題

現在基本上就設置好了,因為我是在腳本中畫圖,所以我需要在代碼的最後添加一個:plt.show(),它會自動啟用一個事件循環,並找到所有當前可用的圖形對象,然後打開一個交互式窗口來顯示圖形.

1.1.5上述的完整的代碼(有一些細節的添加):

import matplotlib.pyplot as pltimport numpy as np#設置xy的值x=np.linspace(-5,5,11)y=[1,6,3,-3,6,8,3,6,9,1,-5]#創建一張畫板huaban=plt.figure(figsize=(6,10))#添加p1到畫板p1=huaban.add_subplot(111)#限制函數坐標軸的長度p1.axis([-5,5,-10,10])#設置x,y軸的刻度plt.xticks(x)plt.yticks(y)#去除右邊邊框p1.spines['right'].set_color('none')#去除頂部邊框p1.spines['top'].set_color('none')#下面兩行代碼是將xy軸的交點改為(0,0)p1.spines['bottom'].set_position(('data',0))p1.spines['left'].set_position(('data',0))#繪制圖像p1.plot(x,y,marker='^',ms=5,lw=2,ls='--',label='band')p1.legend(loc='upper left')#添加標題plt.title('NUM',fontsize=24)plt.xlabel('Value',fontsize=14)plt.ylabel('ARG',fontsize=14)#添加輔助虛線for i in range(len(x)): x1=[x[i],x[i]] y1=[0,y[i]] plt.plot(x1,y1,'r-.')for i in range(len(x)): x2=[0,x[i]] y2=[y[i],y[i]] p1.plot(x2,y2,'r-.')#添加每個折點的坐標for i in range(len(x)): p1.text(x[i],y[i],(x[i],y[i]),c='green')plt.grid(c='b',ls='--')#這個函數是生成網格的函數plt.show()

輸出結果:

2.散點圖

散點圖其實大部分語法和上述差不多,只需要將折線圖中的plt.polt()改為plt.scatter()

這裡我們只需要畫一幅圖來做個例子,就省去創建畫板的步驟,創建畫板的步驟在後面才會有用.

import numpy as npimport matplotlib.pyplot as plt#隨機生成一些數據N=20x=np.random.rand(N)y=np.random.rand(N)x1=np.random.rand(N)y1=np.random.rand(N)plt.scatter(x,y,s=100,c='red',marker='^',label='red')#c是color的簡稱,設置顏色plt.legend(loc='best')plt.scatter(x1,y1,s=50,c='blue',marker='o',label='blue')plt.legend(loc='upper left')#在左上角添加圖例plt.xlabel('x')#給橫坐標添加標簽plt.ylabel('y')#給縱坐標添加標簽plt.title('picture')#給圖像添加標簽plt.show()#顯示圖像

輸出結果:

3.條形圖的繪制

使用plt.bar()進行繪制

import numpy as npimport matplotlib.pyplot as pltx=[1,2,3,4,5]y=np.random.rand(5)plt.figure(figsize=(8,4))plt.bar(x,y)x_t=list(range(len(x)))plt.xticks(x,x_t)plt.show()

輸出結果:

4.四幅子圖的繪制

畫子圖就需要創建畫板,然後對畫板進行分割,然後在分出來的位置進行繪制不同的圖像.

重點是這裡:

p1 = huaban.add_subplot(221)p2=huaban.add_subplot(222)p3=huaban.add_subplot(223)p4=huaban.add_subplot(224)#這些數字的意思就是,把畫板分成兩行兩列,四個位置,然後p1在位置1,p2在位置2,p3在位置3.......import numpy as npimport matplotlib.pyplot as pltx=range(-10,10,1)y=np.random.rand(20)huaban=plt.figure(facecolor='pink',figsize=(8,8),dpi=100)p1 = huaban.add_subplot(221)p1.plot(x,y,label="sinx",marker='o')plt.legend(loc='best')plt.grid(c='r',linestyle=':')p2=huaban.add_subplot(222)x1=np.linspace(-np.pi*2,np.pi*2,1000)y1=np.sin(x1)p2.plot(x1,y1,label="sinx",color='blue')plt.legend(loc='best')plt.grid(c='b',linestyle='--')p3=huaban.add_subplot(223)x2=np.random.rand(10)y2=np.random.rand(10)x3=np.random.rand(10)y3=np.random.rand(10)p3.scatter(x2,y2,c='red',marker='o',label="散點圖")p3.scatter(x3,y3,c='red',marker='^',label="散1")p4=huaban.add_subplot(2,2,4)p4.plot(x1,np.cos(x1),label="cosx")plt.legend('best')plt.grid(c='c',linestyle=':')plt.show()

輸出結果:

5.餅狀圖的繪制import matplotlib.pyplot as pltx=[35,25,25,15]colors=["#14615E", "#F46C40", "#3E95C0", "#A17D3B"]name=['A','B','C','D']label=['35.00%','25.00%','25.00%','15.00%']huaban=plt.figure()p1=huaban.add_subplot(111)p1.pie(x,labels=name,colors=colors,autopct='%1.2f%%',explode = (0, 0.2, 0, 0))plt.axis('equal')plt.show()

輸出結果:

6.熱力圖的繪制import matplotlib.pyplot as pltimport numpy as npplt.figure(figsize=(4,4))# Fixing random state for reproducibility#np.random.seed(19680801)#創建子圖1plt.subplot(211)plt.imshow(np.random.random((10, 10)), cmap="hot")#創建子圖2plt.subplot(212)plt.imshow(np.random.random((5, 5)), cmap="winter")plt.subplots_adjust(bottom=0.09, right=0.5, top=0.9)cax = plt.axes([0.75, 0.1, 0.065, 0.8])plt.colorbar(cax=cax)plt.show()

輸出結果:

總結

到此這篇關於Python Matplotlib繪圖基礎的文章就介紹到這了,更多相關Python Matplotlib繪圖基礎內容請搜索軟件開發網以前的文章或繼續浏覽下面的相關文章希望大家以後多多支持軟件開發網!



  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved