對(duì)昨天的圖像進(jìn)行拓展
前面提到的圖例loc參數(shù)設(shè)置為upper left表示添加到右上角
loc參數(shù)還有:
'best'
'upper right'
'upper left'
'lower left'
'lower right'
'right'
'center left'
'center right'
'lower center'
'upper center'
'center'
感興趣的讀者可以自行嘗試
下面給一些特殊點(diǎn)做注釋
我們希望在 2π/3 的位置給兩條函數(shù)曲線加上一個(gè)注釋
首先,我們?cè)趯?duì)應(yīng)的函數(shù)圖像位置上畫一個(gè)點(diǎn)
然后兔辅,向橫軸引一條垂線鲤看,以虛線標(biāo)記,最后,寫上標(biāo)簽
修改后代碼:
...
t = 2*np.pi/3
plt.plot([t,t],[0,np.cos(t)], color ='blue', linewidth=2.5, linestyle="--")
plt.scatter([t,],[np.cos(t),], 50, color ='blue')
plt.annotate(
r'$\cos(\frac{2\pi}{3})=-\frac{1}{2}$',
xy=(t, np.cos(t)), xycoords='data',
xytext=(-90, -50), textcoords='offset points', fontsize=16,
arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2")
)
plt.plot([t,t],[0,np.sin(t)], color ='red', linewidth=2.5, linestyle="--")
plt.scatter([t,],[np.sin(t),], 50, color ='red')
plt.annotate(
r'$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$',
xy=(t, np.sin(t)), xycoords='data',
xytext=(+10, +30), textcoords='offset points', fontsize=16,
arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2")
)
...
下面解釋代碼含義:
plt.plot([t,t],[0,np.cos(t)], color ='blue', linewidth=2.5, linestyle="--")
plt.scatter([t,],[np.cos(t),], 50, color ='blue')
從(t,np.cos(t))引垂線到x軸,設(shè)置顏色為blue,字重2.5,虛線形式
標(biāo)記點(diǎn)(t,np.cos(t))大小為50(s=50)贵少,顏色為blue
plt.annotate(
r'$\cos(\frac{2\pi}{3})=-\frac{1}{2}$',
xy=(t, np.cos(t)), xycoords='data',
xytext=(-90, -50), textcoords='offset points', fontsize=16,
arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2")
)
其中參數(shù)xycoords='data'
是說基于數(shù)據(jù)的值來選位置
xytext=(-90, -50)
和textcoords='offset points'
對(duì)于標(biāo)注位置的描述 和 xy 偏差值, arrowprops是對(duì)圖中箭頭類型的一些設(shè)置
對(duì)于xy偏差值需要讀者根據(jù)實(shí)際情況進(jìn)行調(diào)整
最終效果圖如下: