Python?Matplotlib繪圖基礎(chǔ)詳細(xì)教程
plt是最常用的接口
1. 畫圖的基本步驟
1.導(dǎo)入模塊
import matplotlib as mpl import matplotlib.pyplot as plt
2.創(chuàng)建畫板,然后對畫板進(jìn)行調(diào)整
3.定義數(shù)據(jù)
4.繪制圖形(包含坐標(biāo)軸的設(shè)置,數(shù)據(jù)的導(dǎo)入,線條的樣式,顏色,還有標(biāo)題,圖例,等等)
5.plt.show()
1.1一步一步看
1.1.1**(一)第一步:創(chuàng)建并定義一個(gè)"畫板"**(你將要在你定義的畫板上面進(jìn)行畫圖操作).
fig=plt.figure()#定義一張畫板命名為fig
在plt.figure()括號(hào)里面還有一些參數(shù)
例如:
huaban=plt.figure(figsize=(6,10),facecolor='b',dpi=500) #figsize是調(diào)整你的圖像的比例大小,上面所示就是:長/寬=6/10 #facecolor是設(shè)置畫板的背景顏色,一般顏色代碼為英文的首字母 #dpi設(shè)置圖像的分辨率,分辨率越圖像越清晰 #edgcolor是設(shè)置邊框顏色的參數(shù)
1.1.2**(二).第二步:定義你的x,y數(shù)據(jù)**
這里我們使用numpy庫函數(shù)來制造一些數(shù)據(jù)
所以我們還得導(dǎo)入numpy函數(shù)
import numpy as np #設(shè)置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**(三).第三步:設(shè)置x,y軸的大小,刻度,…**
#添加p1到畫板 p1=fig.add_subplot(111)#這里的111是指把畫板分成一行一列,把p1添加到第一副圖 #限制函數(shù)坐標(biāo)軸的長度 p1.axis([-5,5,-10,10])#x軸長度為-5到5,y軸長度為-10到10 #設(shè)置x,y軸的刻度 plt.xticks(x) plt.yticks(y) #這里是指:x,y軸的刻度為之前定義的x,y數(shù)據(jù)列表 #設(shè)置坐標(biāo)軸的上下限 plt.xlim(-5,5) plt.ylim(-10,10)
1.1.4(四).繪制圖像,導(dǎo)入x,y數(shù)據(jù),設(shè)置線條樣式,顏色,粗細(xì),添加圖例,標(biāo)題…
#繪制圖像
p1.plot(x,y,marker='o',ms=5,lw=2,ls='--',label='band')
#x,y就是最開始定義的數(shù)據(jù)
#marker是設(shè)置拐點(diǎn)樣式:o/h/^/./+等等
#ms是設(shè)置拐點(diǎn)的標(biāo)記大小
#lw就是設(shè)置線條粗細(xì),數(shù)值越大線條越粗
#ls是設(shè)置線條樣式,這里'--'為虛線
#label是設(shè)置此線條的名稱標(biāo)題
p1.legend(loc='best')#添加圖例,其中best是指將圖例的位置添加到最佳位置,
#你也可以自己設(shè)置位置,例如:upper left(左上角)
#添加標(biāo)題
plt.title('NUM',fontsize=24)#設(shè)置圖像的標(biāo)題,fontsize是設(shè)置標(biāo)題文字的大小
plt.xlabel('Value',fontsize=14)#設(shè)置x軸的標(biāo)題
plt.ylabel('ARG',fontsize=14)#設(shè)置y軸的標(biāo)題
現(xiàn)在基本上就設(shè)置好了,因?yàn)槲沂窃谀_本中畫圖,所以我需要在代碼的最后添加一個(gè):plt.show(),它會(huì)自動(dòng)啟用一個(gè)事件循環(huán),并找到所有當(dāng)前可用的圖形對象,然后打開一個(gè)交互式窗口來顯示圖形.
1.1.5上述的完整的代碼(有一些細(xì)節(jié)的添加):
import matplotlib.pyplot as plt
import numpy as np
#設(shè)置xy的值
x=np.linspace(-5,5,11)
y=[1,6,3,-3,6,8,3,6,9,1,-5]
#創(chuàng)建一張畫板
huaban=plt.figure(figsize=(6,10))
#添加p1到畫板
p1=huaban.add_subplot(111)
#限制函數(shù)坐標(biāo)軸的長度
p1.axis([-5,5,-10,10])
#設(shè)置x,y軸的刻度
plt.xticks(x)
plt.yticks(y)
#去除右邊邊框
p1.spines['right'].set_color('none')
#去除頂部邊框
p1.spines['top'].set_color('none')
#下面兩行代碼是將xy軸的交點(diǎn)改為(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')
#添加標(biāo)題
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-.')
#添加每個(gè)折點(diǎn)的坐標(biāo)
for i in range(len(x)):
p1.text(x[i],y[i],(x[i],y[i]),c='green')
plt.grid(c='b',ls='--')#這個(gè)函數(shù)是生成網(wǎng)格的函數(shù)
plt.show()
輸出結(jié)果:

2.散點(diǎn)圖
散點(diǎn)圖其實(shí)大部分語法和上述差不多,只需要將折線圖中的plt.polt()改為plt.scatter()
這里我們只需要畫一幅圖來做個(gè)例子,就省去創(chuàng)建畫板的步驟,創(chuàng)建畫板的步驟在后面才會(huì)有用.
import numpy as np
import matplotlib.pyplot as plt
#隨機(jī)生成一些數(shù)據(jù)
N=20
x=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的簡稱,設(shè)置顏色
plt.legend(loc='best')
plt.scatter(x1,y1,s=50,c='blue',marker='o',label='blue')
plt.legend(loc='upper left')#在左上角添加圖例
plt.xlabel('x')#給橫坐標(biāo)添加標(biāo)簽
plt.ylabel('y')#給縱坐標(biāo)添加標(biāo)簽
plt.title('picture')#給圖像添加標(biāo)簽
plt.show()#顯示圖像
輸出結(jié)果:

3.條形圖的繪制
使用plt.bar()進(jìn)行繪制
import numpy as np import matplotlib.pyplot as plt x=[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()
輸出結(jié)果:

4.四幅子圖的繪制
畫子圖就需要?jiǎng)?chuàng)建畫板,然后對畫板進(jìn)行分割,然后在分出來的位置進(jìn)行繪制不同的圖像.
重點(diǎn)是這里:
p1 = huaban.add_subplot(221)p2=huaban.add_subplot(222)p3=huaban.add_subplot(223)p4=huaban.add_subplot(224)#這些數(shù)字的意思就是,把畫板分成兩行兩列,四個(gè)位置,然后p1在位置1,p2在位置2,p3在位置3.......
import numpy as np
import matplotlib.pyplot as plt
x=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="散點(diǎn)圖")
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()
輸出結(jié)果:

5.餅狀圖的繪制
import matplotlib.pyplot as plt
x=[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()
輸出結(jié)果:

6.熱力圖的繪制
import matplotlib.pyplot as plt import numpy as np plt.figure(figsize=(4,4)) # Fixing random state for reproducibility #np.random.seed(19680801) #創(chuàng)建子圖1 plt.subplot(211) plt.imshow(np.random.random((10, 10)), cmap="hot") #創(chuàng)建子圖2 plt.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()
輸出結(jié)果:

總結(jié)
到此這篇關(guān)于Python Matplotlib繪圖基礎(chǔ)的文章就介紹到這了,更多相關(guān)Python Matplotlib繪圖基礎(chǔ)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python利用matplotlib.pyplot繪圖時(shí)如何設(shè)置坐標(biāo)軸刻度
- 學(xué)習(xí)python中matplotlib繪圖設(shè)置坐標(biāo)軸刻度、文本
- python繪圖庫Matplotlib的安裝
- python matplotlib繪圖,修改坐標(biāo)軸刻度為文字的實(shí)例
- Python的matplotlib繪圖如何修改背景顏色的實(shí)現(xiàn)
- Python使用matplotlib繪圖無法顯示中文問題的解決方法
- python的繪圖工具matplotlib使用實(shí)例
- Python matplotlib繪圖可視化知識(shí)點(diǎn)整理(小結(jié))
- Python 繪圖庫 Matplotlib 入門教程
相關(guān)文章
php 不能連接數(shù)據(jù)庫 php error Can''t connect to local MySQL server
php 不能連接數(shù)據(jù)庫 php error Can't connect to local MySQL server through socket '/tmp/mysql.sock'2011-05-05
MySQL對window函數(shù)執(zhí)行sum函數(shù)可能出現(xiàn)的一個(gè)Bug
這篇文章主要給大家介紹了關(guān)于MySQL對window函數(shù)執(zhí)行sum函數(shù)可能出現(xiàn)的一個(gè)Bug,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
mysql臨時(shí)表(temporary?table)使用方法詳解
MySQL臨時(shí)表在很多場景中都會(huì)用到,MySQL內(nèi)部在執(zhí)行復(fù)雜SQL時(shí),需要借助臨時(shí)表進(jìn)行分組、排序、去重等操作,下面這篇文章主要給大家介紹了關(guān)于mysql臨時(shí)表(temporary?table)使用方法的相關(guān)資料,需要的朋友可以參考下2024-01-01
詳解MySQL用事件調(diào)度器Event Scheduler創(chuàng)建定時(shí)任務(wù)
事件調(diào)度器(Event Scheduler)是在MySQLv5.1.6中新增的一個(gè)功能,它相當(dāng)于一個(gè)定時(shí)器,可以在指定的時(shí)間點(diǎn)執(zhí)行一條SQL語句或一個(gè)語句塊,也可以用于在固定間隔重復(fù)執(zhí)行。下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)在MySQL中如何用事件調(diào)度器Event Scheduler創(chuàng)建定時(shí)任務(wù)2016-08-08

