python绘图工具基础-matplotlib学习之基本使用
matplotlib學(xué)習(xí)之基本使用
1.figure學(xué)習(xí)2.設(shè)置坐標(biāo)軸3.Legend 圖例4.Annotation 標(biāo)注5.tick能見度
1.figure學(xué)習(xí)
導(dǎo)包
import??matplotlib.pyplot?as?plt import?numpy?as?np產(chǎn)生-3到3之間50個(gè)點(diǎn)
x=np.linspace(-3,3,50)定義函數(shù)
y1=2*x+1 y2=x**2繪制直線
plt.figure() plt.plot(x,y1)曲線與直線繪制一塊
#?num=3表示圖片上方標(biāo)題?變?yōu)閒igure3,figsize=(長,寬)設(shè)置figure大小 plt.figure(num=3,figsize=(8,5)) plt.plot(x,y2) #?紅色虛線直線寬度默認(rèn)1.0 plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--') plt.show()2.設(shè)置坐標(biāo)軸
設(shè)置x軸范圍
plt.xlim((-1,2))設(shè)置軸y范圍
plt.ylim((-2,3))設(shè)置坐標(biāo)軸含義
#?注:英文直接寫,中文需要后面加上fontproperties屬性 plt.xlabel(u'價(jià)格',fontproperties='SimHei') plt.ylabel(u'利潤',fontproperties='SimHei')設(shè)置x軸刻度
#?-1到2區(qū)間,5個(gè)點(diǎn),4個(gè)區(qū)間,平均分:[-1.,-0.25,0.5,1.25,2.] new_ticks=np.linspace(-1,2,5) print(new_ticks) plt.xticks(new_ticks)設(shè)置y軸刻度
''' 設(shè)置對應(yīng)坐標(biāo)用漢字或英文表示,后面的屬性fontproperties表示中文可見,不亂碼, 內(nèi)部英文$$表示將英文括起來,r表示正則匹配,通過這個(gè)方式將其變?yōu)楹每吹淖煮w 如果要顯示特殊字符,比如阿爾法,則用轉(zhuǎn)意符\alpha,前面的\?表示空格轉(zhuǎn)意 ''' plt.yticks([-2,-1.8,-1,1.22,3.],['非常糟糕','糟糕',r'$good\?\alpha$',r'$really\?good$','超級(jí)好'],fontproperties='SimHei')設(shè)置邊框/坐標(biāo)軸
gca='get?current?axis/獲取當(dāng)前軸線' ax=plt.gca() #?spines就是脊梁,即四個(gè)邊框 #?取消右邊與上邊軸 ax.spines['right'].set_color('none') ax.spines['top'].set_color('none')matlibplot并沒有設(shè)置默認(rèn)的x軸與y軸方向,下面就開始設(shè)置默認(rèn)軸
ax.xaxis.set_ticks_position('bottom') ax.yaxis.set_ticks_position('left')設(shè)置坐標(biāo)原點(diǎn)
#?實(shí)現(xiàn)將(0,-1)設(shè)為坐標(biāo)原點(diǎn) #?設(shè)置y軸上-1為坐標(biāo)原點(diǎn)的y點(diǎn),把x軸放置再-1處 ax.spines['bottom'].set_position(('data',-1))?#?也可以是('axes',0.1)后面是百分比,相當(dāng)于定位到10%處 #?設(shè)置x軸上0為坐標(biāo)原點(diǎn)的x點(diǎn),將y軸移置0處 ax.spines['left'].set_position(('data',0))再寫一遍以下代碼,因?yàn)橐陨鲜褂胹et_position后,中文會(huì)顯示不出來
plt.yticks([-2,-1.8,-1,1.22,3.],['非常糟糕','糟糕',r'$good\?\alpha$',r'$really\?good$','超級(jí)好'],fontproperties='SimHei')顯示圖片
plt.show()3.Legend 圖例
解釋見1
import??matplotlib.pyplot?as?plt import?numpy?as?np x=np.linspace(-3,3,50) y1=2*x+1 y2=x**2 #?繪制直線 plt.figure() plt.plot(x,y1) #?曲線與直線繪制一塊 #?num=3表示圖片上方標(biāo)題?變?yōu)閒igure3,figsize=(長,寬)設(shè)置figure大小 plt.figure(num=3,figsize=(8,5))#?設(shè)置x軸范圍 plt.xlim((-1,2)) #?設(shè)置軸y范圍 plt.ylim((-2,3)) #?設(shè)置坐標(biāo)軸含義 #?注:英文直接寫,中文需要后面加上fontproperties屬性 plt.xlabel(u'價(jià)格',fontproperties='SimHei') plt.ylabel(u'利潤',fontproperties='SimHei')#?-1到2區(qū)間,5個(gè)點(diǎn),4個(gè)區(qū)間,平均分:[-1.,-0.25,0.5,1.25,2.] new_ticks=np.linspace(-1,2,5) print(new_ticks) plt.xticks(new_ticks)plt.yticks([-2,-1.8,-1,1.22,3.],['非常糟糕','糟糕',r'$good\?\alpha$',r'$really\?good$','超級(jí)好'],fontproperties='SimHei')設(shè)置legend圖例
l1,=plt.plot(x,y2)?#?可添加label屬性,只不過如果這里添加了,下面legend再添加,下面的就會(huì)覆蓋此處的! #?紅色虛線直線寬度默認(rèn)1.0 l2,=plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--') ''' prop={'family':'SimHei','size':15}顯示中文 legend(hadles=[,,],labels=[,,],loc='best/upper?right/upper?left/.../lower?right') handles就是你給他添加legend的線,如果要用handles,則前面的plt.plot,必須用l1,形式(不要忘記逗號(hào)) 此處labels會(huì)覆蓋上述的plt.plot()的label loc默認(rèn)是best,給你放在一個(gè)合適的位置上,如果你拉伸彈框,位置會(huì)跟著變,自動(dòng)放置合適位置 ''' plt.legend(handles=[l1,l2],prop={'family':'SimHei','size':15},loc='lower?right',labels=['直線','曲線'])繪制
plt.show()4.Annotation 標(biāo)注
見上述詳解
import??matplotlib.pyplot?as?plt import?numpy?as?np x=np.linspace(-3,3,20) y=2*x+1 #?繪制直線 plt.figure(num=1,figsize=(8,5),) plt.plot(x,y) #?gca='get?current?axis/獲取當(dāng)前軸線' ax=plt.gca() #?spines就是脊梁,即四個(gè)邊框 #?取消右邊與上邊軸 ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') ax.xaxis.set_ticks_position('bottom') ax.spines['bottom'].set_position(('data',-0))?#?也可以是('axes',0.1)后面是百分比,相當(dāng)于定位到10%處 ax.yaxis.set_ticks_position('left') ax.spines['left'].set_position(('data',0))繪制特定散點(diǎn)
x0=1 y0=2*x0+1 #?plot散點(diǎn)圖,上述plt.plot(x,y)變?yōu)閜lt.scatter(x,y)繪制出來就是散點(diǎn)圖 #?s代表大小,b代表blue plt.scatter(x0,y0,s=50,color='b') #?把兩個(gè)點(diǎn)放進(jìn)去plot一下,畫出垂直于x軸的一條線,[x0,x0]表示兩個(gè)點(diǎn)的x,[0,y0]表示兩個(gè)點(diǎn)的y繪制(x0,y0)垂直于x軸的線
#?k--表示黑色虛線,k代表黑色,--表示虛線,lw表示線寬 plt.plot([x0,x0],[0,y0],'k--',lw=2.5)添加注釋 annotate
''' 其中參數(shù)xycoords='data'?是說基于數(shù)據(jù)的值來選位置,?xytext=(+30,?-30)?和?textcoords='offset?points' 對于標(biāo)注位置的描述?和?xy?偏差值,?arrowprops是對圖中箭頭類型的一些設(shè)置. '''plt.annotate(r'$2x+1=%s$'%y0,xy=(x0,y0),xycoords='data',xytext=(+30,-30),textcoords='offset?points',fontsize=16,arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2'))添加注釋 text
#?其中-3.7,?3,是選取text的位置,?空格需要用到轉(zhuǎn)字符\?,fontdict設(shè)置文本字體. plt.text(-3.7,3,r'$This\?is\?the\?some\?text.\mu\?\sigma_i\?\alpha_t$',fontdict={'size':'16','color':'red'}) plt.show()5.tick能見度
參考上面
import?matplotlib.pyplot?as?plt import?numpy?as?npx?=?np.linspace(-3,?3,?50) y?=?0.1*xplt.figure() #?設(shè)置?zorder?給?plot?在?z?軸方向排序 plt.plot(x,?y,?linewidth=10,?zorder=1) plt.ylim(-2,?2) ax?=?plt.gca() ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') ax.spines['top'].set_color('none') ax.xaxis.set_ticks_position('bottom') ax.spines['bottom'].set_position(('data',?0)) ax.yaxis.set_ticks_position('left') ax.spines['left'].set_position(('data',?0))調(diào)整坐標(biāo)
#?對被遮擋的圖像調(diào)節(jié)相關(guān)透明度,本例中設(shè)置?x軸?和?y軸?的刻度數(shù)字進(jìn)行透明度設(shè)置 for?label?in?ax.get_xticklabels()+ax.get_yticklabels():label.set_fontsize(12)'''其中l(wèi)abel.set_fontsize(12)重新調(diào)節(jié)字體大小,bbox設(shè)置目的內(nèi)容的透明度相關(guān)參,facecolor調(diào)節(jié)?box?前景色,edgecolor?設(shè)置邊框,?本處設(shè)置邊框?yàn)闊o,alpha設(shè)置透明度.'''#?其中l(wèi)abel.set_fontsize(12)重新調(diào)節(jié)字體大小,bbox設(shè)置目的內(nèi)容的透明度相關(guān)參,facecolor調(diào)節(jié)?box?前景色,edgecolor?設(shè)置邊框,?本處設(shè)置邊框?yàn)闊o,alpha設(shè)置透明度.label.set_bbox(dict(facecolor='white',edgecolor='none',alpha=0.7))繪制
plt.show()作者光城的公眾號(hào):
請關(guān)注和分享↓↓↓?
機(jī)器學(xué)習(xí)初學(xué)者
QQ群:774999266
往期精彩回顧
機(jī)器學(xué)習(xí)簡易入門-附推薦學(xué)習(xí)資料
機(jī)器學(xué)習(xí)初學(xué)者公眾號(hào)下載資源匯總(一)
黃海廣博士的github鏡像下載(機(jī)器學(xué)習(xí)及深度學(xué)習(xí)資源)
吳恩達(dá)老師的機(jī)器學(xué)習(xí)和深度學(xué)習(xí)課程筆記打印版
機(jī)器學(xué)習(xí)小抄-(像背托福單詞一樣理解機(jī)器學(xué)習(xí))
首發(fā):深度學(xué)習(xí)入門寶典-《python深度學(xué)習(xí)》原文代碼中文注釋版及電子書
科研工作者的神器-zotero論文管理工具
機(jī)器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)
機(jī)器學(xué)習(xí)必備寶典-《統(tǒng)計(jì)學(xué)習(xí)方法》的python代碼實(shí)現(xiàn)、電子書及課件
吐血推薦收藏的學(xué)位論文排版教程(完整版)
總結(jié)
以上是生活随笔為你收集整理的python绘图工具基础-matplotlib学习之基本使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开源-BDCI2018供应链需求预测模型
- 下一篇: python进阶之多进程