数据分析程序猿阵线联盟-汇总各类技术干货程序员

数据可视化<第五天>

2018-04-14  本文已影响37人  人生苦短_我用Python

对昨天的图像进行拓展

前面提到的图例loc参数设置为upper left表示添加到右上角
loc参数还有:

'best'           
'upper right'  
'upper left'   
'lower left'   
'lower right'  
'right'        
'center left'  
'center right' 
'lower center' 
'upper center' 
'center'   

感兴趣的读者可以自行尝试

下面给一些特殊点做注释

我们希望在 2π/3 的位置给两条函数曲线加上一个注释
首先,我们在对应的函数图像位置上画一个点
然后,向横轴引一条垂线,以虚线标记,最后,写上标签

修改后代码:

...

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轴,设置颜色为blue,字重2.5,虚线形式
标记点(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")
)  

其中参数xycoords='data'
是说基于数据的值来选位置
xytext=(-90, -50)textcoords='offset points'
对于标注位置的描述 和 xy 偏差值, arrowprops是对图中箭头类型的一些设置

对于xy偏差值需要读者根据实际情况进行调整

最终效果图如下:


上一篇下一篇

猜你喜欢

热点阅读