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