Matplotlib簡介和pyplot的簡單使用——文本標註和箭頭

來源:互聯網
上載者:User

在使用pyplot畫圖的時候,有時會需要在圖上標註一些文字,如果曲線靠的比較近,最好還能用箭頭指出標註文字和曲線的對應關係。這裡就介紹文字標註和箭頭的使用。
添加標註使用pyplot.text,由pyplot或者subplot調用。下面是可以選擇的參數,
text(tx,ty,fontsize=fs,verticalalignment=va,horizontalalignment=ha,...)
其中,tx和ty指定放置文字的位置,va和ha指定對其方式,可以是top,bottom,center或者left,right,center,還可以使文字帶有邊框,邊框形狀還可以是箭頭,並指定方向。
添加箭頭使用pyplot.annotate,調用方式與text類似。下面是可選擇的參數,
annotate(text,xy=(tx0,ty0),xytext=(tx1,ty1),arrowprops=dict(arrowstyle="->",connectionstyle="arc3"))
其中,text是與箭頭一起的文字,xy是箭頭所在位置,終點,xytext是起點,arrowtypes指定箭頭的樣式,更多內容還是參見手冊吧。

效果如下,

代碼如下,只是在之前subplot的基礎上做了一些修改,

 

#!/usr/bin/env pythonimport numpy as npimport matplotlib.pyplot as pltdef f1(t):    return np.exp(-t)*np.cos(2*np.pi*t)def f2(t):    return np.sin(2*np.pi*t)*np.cos(3*np.pi*t)t = np.arange(0.0,5.0,0.02)plt.figure(figsize=(8,7),dpi=98)p1 = plt.subplot(211)p2 = plt.subplot(212)label_f1 = "$f(t)=e^{-t} \cos (2 \pi t)$"label_f2 = "$g(t)=\sin (2 \pi t) \cos (3 \pi t)$"p1.plot(t,f1(t),"g-",label=label_f1)p2.plot(t,f2(t),"r-.",label=label_f2,linewidth=2)p1.axis([0.0,5.01,-1.0,1.5])p1.set_ylabel("v",fontsize=14)p1.set_title("A simple example",fontsize=18)p1.grid(True)#p1.legend()tx = 2ty = 0.9p1.text(tx,ty,label_f1,fontsize=15,verticalalignment="top",horizontalalignment="right")p2.axis([0.0,5.01,-1.0,1.5])p2.set_ylabel("v",fontsize=14)p2.set_xlabel("t",fontsize=14)#p2.legend()tx = 2ty = 0.9p2.text(tx,ty,label_f2,fontsize=15,verticalalignment="bottom",horizontalalignment="left")p2.annotate('',xy=(1.8,0.5),xytext=(tx,ty),arrowprops=dict(arrowstyle="->",connectionstyle="arc3"))plt.show()

恩,本來就很簡單的東西,就不要弄太複雜了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.