"[,**fontdict=None,loc=None,pad=None]):添加标题 #参数说明:None表示默认值来自全局配置 title:指定标题文本;为str fontdict:指定标题外观;为dict/键值对 #使用键值对时键不为str,_[]">
当前位置:   article > 正文

Python 第三方模块 绘图 Matplotlib模块 文本描述_[

[]

文本信息查看:https://matplotlib.org/api/text_api.html#matplotlib.text.Text

1.添加标题:

matplotlib.pyplot.title("<title>"[,**fontdict=None,loc=None,pad=None]):添加标题
  #参数说明:None表示默认值来自全局配置
    title:指定标题文本;str
    fontdict:指定标题外观;dict/键值对
      #使用键值对时键不为str,使用dict时键为str
      默认值为{"fontsize":rcParams["axes.titlesize"],
              #即'large'
              "fontweight":rcParams["axes.titleweight"],
              #即'normal'
              "color":rcParams["axes.titlecolor"]
              #即'auto'
              "verticalalignment":"baseline",
              "horizontalalignment":loc}
    loc:指定标题横向位置;str
      默认值为rcParams["axes.titlelocation"],"center"
      还可为"left"/"right"
    pad:标题距离上边框线的偏移量;float,单位为磅
      默认值为rcParams["axes.titlepad"],6.0
      #pad<0时相当于0

#实例:
>>> import matplotlib.pyplot as plt
>>> x=range(2,26,2)
>>> y=range(0,12)
>>> plt.title('x-y title',pad=20)
Text(0.5, 1.0, 'x-y title')
>>> plt.plot(x, y)
[<matplotlib.lines.Line2D object at 0x0000012CC2D38A88>]
>>> plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

在这里插入图片描述
2.为坐标轴添加标签:

matplotlib.pyplot.xlabel("<xlabel>"[,**fontdict=None,labelpad=None]):为x轴添加标签
matplotlib.pyplot.ylabel("<ylabel>"[,**fontdict=None,labelpad=None]):为y轴添加标签
  #参数说明:None表示默认值来自全局配置
    xlabel,ylabel:指定标签文本;str
    fontdict:指定标签外观;dict/键值对
      #为键值对时键不为str,为dict时键为str
      默认值为{"fontsize":rcParams["axes.titlesize"],
              #即"large"
              "fontweight":rcParams["axes.titleweight"],
              #即"normal"
              "color":rcParams["axes.titlecolor"],
              #即"auto"
              "verticalalignment":"baseline",
              "horizontalalignment":"center"}
    labelpad:标签距离对应坐标轴的偏移量;float,单位为磅
      默认值为rcParams["axes.titlepad"],6.0
      #ylabel在y轴左侧,xlabel在x轴下方;labelpad<0时相当于0

#实例:
>>> import matplotlib.pyplot as plt
>>> x=range(2,26,2)
>>> y=range(0,12)
>>> a=[2,3,1,4,1,3,5,2,3,1,1]
>>> b=[1,2,3,4,5,6,7,8,9,10,11]
>>> plt.title('x-y and a-b title')
Text(0.5, 1.0, 'x-y and a-b title')
>>> plt.xlabel('x label',fontdict={'color':'red'},labelpad=15.0)
Text(0.5, 0, 'x label')
>>> plt.ylabel('y label',color='blue',labelpad=15.0)
Text(0, 0.5, 'y label')
>>> plt.plot(x,y)
[<matplotlib.lines.Line2D object at 0x0000012CC3851088>]
>>> plt.plot(a,b)
[<matplotlib.lines.Line2D object at 0x0000012CC4D29AC8>]
>>> plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

在这里插入图片描述
3.添加文本说明:

TextWithDash参考:https://matplotlib.org/api/text_api.html#matplotlib.text.TextWithDash
Text参考:https://matplotlib.org/api/text_api.html#matplotlib.text.Text

(1)添加2D图像的文本说明:

matplotlib.pyplot.text(<x>,<y>,"<text>"[,**fontdict=None,ha="left",va="baseline",withdash=False]):在任意位置添加说明文本
  #参数说明:
    x,y:指定说明文本的x,y坐标
    text:指定说明文本;str
    fontdict:指定说明文本的外观;dict/键值对
      #为键值对时键不为str,为dict时键为str
      默认值为{"fontsize":rcParams["axes.titlesize"],
              #即"large"
              "fontweight":rcParams["axes.titleweight"],
              #即"normal"
              "color":rcParams["axes.titlecolor"],
              #即"auto"
              "verticalalignment":"baseline",
              "horizontalalignment":"center"}
    ha:注释文本的水平相对位置
      可为"left"/"right"/"center"
    va:注释文本的垂直相对位置
      可为"top"/"bottom"/"center"/"baseline"/'center_baseline'
    withdash:True,创建1个TextWithDash实例;False,创建1个Text实例
      #TextWithDash类将在Matplotlib 3.3中被删除

#实例:
>>> import matplotlib.pyplot as plt
>>> plt.rcParams['lines.marker']='o'#设置数据点的形状
>>> a=[5,10,15,20,25,30]
>>> b=[3,4,5,6,7,8]
>>> plt.text(4,3.2,'text1')
Text(4, 3.2, 'text1')
>>> plt.text(9,4.2,'text2')
Text(9, 4.2, 'text2')
>>> plt.text(14,5.2,'text3')
Text(14, 5.2, 'text3')
>>> plt.text(19,6.2,'text4')
Text(19, 6.2, 'text4')
>>> plt.text(24,7.2,'text5')
Text(24, 7.2, 'text5')
>>> plt.text(27.5,7.9,'text6')
Text(27.5, 7.9, 'text6')
>>> plt.title('a-b title')
Text(0.5, 1.0, 'a-b title')
>>> plt.xlabel("x")
Text(0.5, 0, 'x')
>>> plt.ylabel("y")
Text(0, 0.5, 'y')
>>> plt.plot(a,b)
[<matplotlib.lines.Line2D object at 0x0000012CC53D9908>]
>>> plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47

在这里插入图片描述

matplotlib.pyplot.annotate(<text>,xy=[<x>,<y>],xytext=[<xt>,<yt>],xycoords="data",textcoords=xycoords,ha="left",va="baseline",**arrowprops):功能类似.text(),更高级
  #参数说明:其他参数同.text()
    x,y:指定被注释的数据点的x,y坐标;为标量
    xy,yt:指定说明文本的x,y坐标;默认和x,y相同;为标量
    xycoords:指定被注释的数据点的参考系;默认为"data"
      可取的值见 表1
    textcoords:指定说明文本的坐标点的参考系;默认同xycoords
      可取的值见 表2
    arrowprops:指定注释箭头(从说明文本指向被注释的数据点)的样式;dict,键为str
      部分可取的键见表3
      键arrowstyle可取的值见表4
      键connectionstyle的描述见表5,样式见表6
      #也可以写为dict(<key>=<value>)的形式,此时key非str

#实例:
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> x=np.arange(-2*np.pi,2*np.pi,0.01)
>>> y=np.sin(1*x)/x
>>> plt.title("Title")
Text(0.5, 1.0, 'Title')
>>> plt.xlabel('x')
Text(0.5, 0, 'x')
>>> plt.ylabel('y')
Text(0, 0.5, 'y')
>>> plt.plot(x,y)
[<matplotlib.lines.Line2D object at 0x00000208F654C988>]
>>> plt.annotate(r'$\lim_{x\to 0}\frac{\sin(x)}{x}=1$',#LaTeX表达式作为说明文本
...             xy=[0,1],#被注释的数据点的坐标
...             xycoords='data',#被注释的数据点的坐标的参考系
...             xytext=[50,-40],#说明文本的坐标
...             textcoords='offset points',#说明文本的坐标的参考系
...             fontsize=16,#字体大小
...             arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))#箭头样式
                #相当于arrowprops={"arrowstyle":"->","connectionstyle":"arc3,rad=.2"})
Text(50, -40, '$\\lim_{x\\to 0}\\frac{\\sin(x)}{x}=1$')
>>> plt.show()
#结果见下图1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
表3中的其他键参考:https://matplotlib.org/api/_as_gen/matplotlib.patches.FancyArrowPatch.html#matplotlib.patches.FancyArrowPatch
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
表5中的其他键参考:
https://matplotlib.org/api/_as_gen/matplotlib.patches.PathPatch.html#matplotlib.patches.PathPatch
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)添加3D图像的文本说明:

其他参数参见:https://matplotlib.org/api/text_api.html

<ax3d>.text(<x>,<y>,<z>,<s>[,zdir=None,**kwargs])
  #参数说明:zdir同<ax3d>.plot()
    x,y,z:指定说明文本的x/y/z坐标
    s:指定要添加的文本

#实例:
>>> import matplotlib.pyplot as plt
>>> fig=plt.figure()
>>> ax=fig.gca(projection='3d')
>>> zdirs=(None,'x','y','z',(1,1,0),(1,1,1))
>>> xs=(1,4,4,9,4,1)
>>> ys=(2,5,8,10,1,2)
>>> zs=(10,3,8,9,1,8)
>>> for zdir,x,y,z in zip(zdirs,xs,ys,zs):
...     label='(%d,%d,%d),dir=%s'%(x,y,z,zdir)
...     ax.text(x,y,z,label,zdir)
...
Text(1, 2, '(1,2,10),dir=None')
Text(4, 5, '(4,5,3),dir=x')
Text(4, 8, '(4,8,8),dir=y')
Text(9, 10, '(9,10,9),dir=z')
Text(4, 1, '(4,1,1),dir=(1, 1, 0)')
Text(1, 2, '(1,2,8),dir=(1, 1, 1)')
>>> ax.text(9,0,0,"red",color='red')
Text(9, 0, 'red')
>>> ax.text2D(0.05,0.95,"2D Text",transform=ax.transAxes)
Text(0.05, 0.95, '2D Text')
>>> ax.set_xlim(0, 10)
(0.0, 10.0)
>>> ax.set_ylim(0, 10)
(0.0, 10.0)
>>> ax.set_zlim(0, 10)
(0.0, 10.0)
>>> plt.show()#结果见下图
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

*在这里插入图片描述*
4.LaTeX的使用:

参见:https://matplotlib.org/tutorials/text/mathtext.html

LaTeX是1种基于TeX的排版系统,常用于生成复杂表格和数学公式
Matplotlib提供自己的TeX表达式解析器/布局引擎/字体
布局引擎基于 Donald Knuth的TeX布局算法改编而来
格式:$<LaTeX>$

#实例:
import numpy as np
import matplotlib.pyplot as plt
>>> t=np.arange(0.0,2.0,0.01)
>>> s=np.sin(2*np.pi*t)
>>> plt.title(r'$\alpha_i > \beta_i$',fontsize=20)
>>> plt.text(1,-0.6,r'$\sum_{i=0}^\infty x_i$',fontsize=20)
>>> plt.text(0.6,0.6,r'$\mathcal{A}\mathrm{sin}(2 \omega t)$',fontsize=20)
>>> plt.xlabel('time (s)')
>>> plt.ylabel('volts (mV)')
>>> plt.plot(t,s)
>>> plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/1004561
推荐阅读
相关标签
  

闽ICP备14008679号