天天看点

plt.annotate()函数解析(最清晰的解释)

plt.annotate()函数用于标注文字。

plt.annotate(s='str',

    xy=(x,y) ,

    xytext=(l1,l2) ,

    ...

)

参数:

s 为注释文本内容

xy 为被注释的坐标点

xytext 为注释文字的坐标位置

xycoords 参数如下:

  • figure points:图左下角的点
  • figure pixels:图左下角的像素
  • figure fraction:图的左下部分
  • axes points:坐标轴左下角的点
  • axes pixels:坐标轴左下角的像素
  • axes fraction:左下轴的分数
  • data:使用被注释对象的坐标系统(默认)
  • polar(theta,r):if not native ‘data’ coordinates t

weight 设置字体线型

{‘ultralight’, ‘light’, ‘normal’, ‘regular’, ‘book’, ‘medium’, ‘roman’, ‘semibold’, ‘demibold’, ‘demi’, ‘bold’, ‘heavy’, ‘extra bold’, ‘black’}

color 设置字体颜色

  • {‘b’, ‘g’, ‘r’, ‘c’, ‘m’, ‘y’, ‘k’, ‘w’}
  • ‘black’,'red’等
  • [0,1]之间的浮点型数据
  • RGB或者RGBA, 如: (0.1, 0.2, 0.5)、(0.1, 0.2, 0.5, 0.3)等

arrowprops #箭头参数,参数类型为字典dict

  • width:箭头的宽度(以点为单位)
  • headwidth:箭头底部以点为单位的宽度
  • headlength:箭头的长度(以点为单位)
  • shrink:总长度的一部分,从两端“收缩”
  • facecolor:箭头颜色

bbox给标题增加外框 ,常用参数如下:

  • boxstyle:方框外形
  • facecolor:(简写fc)背景颜色
  • edgecolor:(简写ec)边框线条颜色
  • edgewidth:边框线条大小

例子1:

import matplotlib.pyplot as plt

import numpy as np

x = np.arange(0, 6)

y = x * x

plt.plot(x, y, marker='o')

for xy in zip(x, y):

    plt.annotate("(%s,%s)" % xy, xy=xy, xytext=(-20, 10), textcoords='offset points')

plt.show()

plt.annotate()函数解析(最清晰的解释)

例子2:

把weight参数改成heavy。

import matplotlib.pyplot as plt

import numpy as np

x = np.arange(0, 6)

y = x * x

plt.plot(x, y, marker='o')

for xy in zip(x, y):

    plt.annotate("(%s,%s)" % xy, xy=xy, xytext=(-20, 10), textcoords='offset points', weight='heavy')

plt.show()

plt.annotate()函数解析(最清晰的解释)

例子3:

把color参数改成y。

import matplotlib.pyplot as plt

import numpy as np

x = np.arange(0, 6)

y = x * x

plt.plot(x, y, marker='o')

for xy in zip(x, y):

    plt.annotate("(%s,%s)" % xy, xy=xy, xytext=(-20, 10), textcoords='offset points', color='y')

plt.show()

plt.annotate()函数解析(最清晰的解释)

例子4:

把arrowprops参数改成通过dict传入参数(facecolor = “r”, headlength = 10, headwidth = 30, width = 20)。

import matplotlib.pyplot as plt

import numpy as np

x = np.arange(0, 6)

y = x * x

plt.plot(x, y, marker='o')

for xy in zip(x, y):

    plt.annotate("(%s,%s)" % xy, xy=xy, xytext=(-20, 10), textcoords='offset points', 

    arrowprops = dict(facecolor = "r", headlength = 10, headwidth = 30, width = 20))

plt.show()

plt.annotate()函数解析(最清晰的解释)

例子5:

把bbox参数改成通过dict传入参数(boxstyle=‘round,pad=0.5’, fc=‘yellow’, ec=‘k’,lw=1 ,alpha=0.5)。

import matplotlib.pyplot as plt

import numpy as np

x = np.arange(0, 6)

y = x * x

plt.plot(x, y, marker='o')

for xy in zip(x, y):

    plt.annotate("(%s,%s)" % xy, xy=xy, xytext=(-20, 10), textcoords='offset points', 

    bbox=dict(boxstyle='round,pad=0.5', fc='yellow', ec='k', lw=1, alpha=0.5)

plt.show()

plt.annotate()函数解析(最清晰的解释)

例子6:

把arrowprops参数改成通过dict传入参数(facecolor=‘black’, shrink=0.05)。

import matplotlib.pyplot as plt

import numpy as np

x = np.arange(0, 6)

y = x * x

plt.plot(x, y, marker='o')

for xy in zip(x, y):

    plt.annotate('local max', xy=(2, 1), xytext=(3, 1.5), arrowprops=dict(facecolor='black', shrink=0.05))

plt.show()

plt.annotate()函数解析(最清晰的解释)

————————————————

版权声明:本文为CSDN博主「我是管小亮 :)」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/TeFuirnever/article/details/88946088