浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
在使用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 python
import numpy as np
import matplotlib.pyplot as plt
def 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 = 2
ty = 0.9
p1.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 = 2
ty = 0.9
p2.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()
本来就很简单的东西,就不要弄太复杂了。
总结
以上就是本文关于浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:
如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
相关文章
gethostbyaddr在Python3中引发UnicodeDecodeError
本文介绍了gethostbyaddr()在Python 3中引发UnicodeDecodeError的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧2022-05-05
Python中的NumPy实用函数整理之percentile详解
这篇文章主要介绍了Python中的NumPy实用函数整理之percentile详解,NumPy函数percentile()用于计算指定维度上数组元素的第 n 个百分位数,返回值为标量或者数组,需要的朋友可以参考下2023-09-09
配置jupyter notebook全步骤,更改默认路径,jupyter不是问题
这篇文章主要介绍了配置jupyter notebook全步骤,更改默认路径,jupyter不是问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-12-12
python使用collections模块的容器数据类型高效处理数据
这篇文章主要为大家介绍了python使用collections模块的容器数据类型高效处理数据的方法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-06-06
解决virtualenv -p python3 venv报错的问题
这篇文章主要介绍了解决virtualenv -p python3 venv报错的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-02-02


最新评论