matplotlib用于标注文字的函数_python annotate

matplotlib用于标注文字的函数_python annotateMatplotlib库标注在工作有很大作用:Annotate的构造函数为:Annotation(s,xy,xytext=None,xycoords=‘data’,textcoords=None,arrowprops=None,annotation_clip=None,**kwargs)用于绘制连接图上两点的箭头。关键参数:s为注释文本内容xy为被注释的坐标点,二维元组形如(…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

Matplotlib库 标注在工作有很大作用:

Annotate的构造函数为 :Annotation(s, xy, xytext=None, xycoords=‘data’, textcoords=None, arrowprops=None, annotation_clip=None, **kwargs) 用于绘制连接图上两点的箭头。

关键参数:

s 为注释文本内容

xy 为被注释的坐标点,二维元组形如(x,y)

xytext 为注释文本的坐标点,也是二维元组,默认与xy相同

xycoords为被注释点的坐标系属性(通常xycoords值为’data’,即以被注释的坐标点xy为参考)

Value Description

================= =============================================

‘figure points’ Points from the lower left of the figure

‘figure pixels’ Pixels from the lower left of the figure

‘figure fraction’ Fraction of figure from lower left

‘axes points’ Points from lower left corner of axes

‘axes pixels’ Pixels from lower left corner of axes

‘axes fraction’ Fraction of axes from lower left

‘data’ Use the coordinate system of the object being

annotated (default)

‘polar’ *(theta, r)* if not native ‘data’ coordinates

================= =============================================

textcoords 设置注释文本的坐标系属性(textcoords 选择为相对于被注释点xy的偏移量,‘offset points’或者’offset pixels’)

arrowprops为箭头的样式,dict(字典)型数据,如果该属性非空,则会在注释文本和被注释点之间画一个箭头。如果不设置’arrowstyle’关键字,则允许包含关键字width、headwidth、headlength、shrink,以下是arrowstyle的可选值

Name Attrs

============ =============================================

“’-‘“ None

“’->’“ head_length=0.4,head_width=0.2

“’-[‘“ widthB=1.0,lengthB=0.2,angleB=None

“’|-|’“ widthA=1.0,widthB=1.0

“’-|>’“ head_length=0.4,head_width=0.2

“’

“”“ head_length=0.4,head_width=0.2

“’

“”“ head_length=0.4,head_width=0.2

“’fancy’“ head_length=0.4,head_width=0.4,tail_width=0.4

“’simple’“ head_length=0.5,head_width=0.5,tail_width=0.2

“’wedge’“ tail_width=0.3,shrink_factor=0.5

============ =============================================

两个点之间的连接路径。 这由connectionstyle键值控制。

Angle(angleA=90, angleB=0, rad=0.0)[source]

Angle3(angleA=90, angleB=0)

Arc(angleA=0, angleB=0, armA=None, armB=None, rad=0.0)

Arc3(rad=0.0)[source]

Bar(armA=0.0, armB=0.0, fraction=0.3, angle=None)[source]

在pyplot模块(或Axes类的text方法get_bbox_patch/set_boxstyle(“rarrow”, pad=0.6))中的text()函数接受bbox关键字参数,并且在提供时,在文本周围绘制一个框。常用参数如下:

matplotlib用于标注文字的函数_python annotate

matplotlib用于标注文字的函数_python annotate

importmatplotlib.pyplot as pltimportnumpy as npimportmatplotlib.path as mpathimportmatplotlib.lines as mlinesimportmatplotlib.patches as mpatchesfrom matplotlib.collections importPatchCollectiondeflabel(xy, text):

y= xy[1] – 0.15 #shift y-value for label so that it’s below the artist

plt.text(xy[0], y, text, ha=”center”, family=’sans-serif’, size=14)

fig, ax=plt.subplots()#create 3×3 grid to plot the artists

grid = np.mgrid[0.2:0.8:3j, 0.2:0.8:3j].reshape(2, -1).T

patches=[]#add a circle

circle = mpatches.Circle(grid[0], 0.1, ec=”none”)

patches.append(circle)

label(grid[0],”Circle”)#add a rectangle

rect = mpatches.Rectangle(grid[1] – [0.025, 0.05], 0.05, 0.1, ec=”none”)

patches.append(rect)

label(grid[1], “Rectangle”)#add a wedge

wedge = mpatches.Wedge(grid[2], 0.1, 30, 270, ec=”none”)

patches.append(wedge)

label(grid[2], “Wedge”)#add a Polygon

polygon = mpatches.RegularPolygon(grid[3], 5, 0.1)

patches.append(polygon)

label(grid[3], “Polygon”)#add an ellipse

ellipse = mpatches.Ellipse(grid[4], 0.2, 0.1)

patches.append(ellipse)

label(grid[4], “Ellipse”)#add an arrow

arrow = mpatches.Arrow(grid[5, 0] – 0.05, grid[5, 1] – 0.05, 0.1, 0.1,

width=0.1)

patches.append(arrow)

label(grid[5], “Arrow”)#add a path patch

Path =mpath.Path

path_data=[

(Path.MOVETO, [0.018, -0.11]),

(Path.CURVE4, [-0.031, -0.051]),

(Path.CURVE4, [-0.115, 0.073]),

(Path.CURVE4, [-0.03, 0.073]),

(Path.LINETO, [-0.011, 0.039]),

(Path.CURVE4, [0.043, 0.121]),

(Path.CURVE4, [0.075, -0.005]),

(Path.CURVE4, [0.035, -0.027]),

(Path.CLOSEPOLY, [0.018, -0.11])]

codes, verts= zip(*path_data)

path= mpath.Path(verts + grid[6], codes)

patch=mpatches.PathPatch(path)

patches.append(patch)

label(grid[6], “PathPatch”)#add a fancy box

fancybox =mpatches.FancyBboxPatch(

grid[7] – [0.025, 0.05], 0.05, 0.1,

boxstyle=mpatches.BoxStyle(“Round”, pad=0.02))

patches.append(fancybox)

label(grid[7], “FancyBboxPatch”)#add a line

x, y = np.array([[-0.06, 0.0, 0.1], [0.05, -0.05, 0.05]])

line= mlines.Line2D(x + grid[8, 0], y + grid[8, 1], lw=5., alpha=0.3)

label(grid[8], “Line2D”)

colors= np.linspace(0, 1, len(patches))

collection= PatchCollection(patches, cmap=plt.cm.hsv, alpha=0.3)

collection.set_array(np.array(colors))

ax.add_collection(collection)

ax.add_line(line)

plt.axis(‘equal’)

plt.axis(‘off’)

plt.tight_layout()

plt.show()

View Code

boxstyle方框外形,参数是框样式的名称与其作为关键字参数的属性

facecolor(简写fc)背景颜色

edgecolor(简写ec)边框线条颜色

edgewidth边框线条大小

box类        名称            属性

Circle         circle         pad=0.3

DArrow         darrow         pad=0.3

LArrow         larrow         pad=0.3

RArrow         rarrow         pad=0.3

Round         round         pad=0.3,rounding_size=None

Round4         round4         pad=0.3,rounding_size=None

Roundtooth     roundtooth     pad=0.3,tooth_size=None

Sawtooth     sawtooth     pad=0.3,tooth_size=None

Square         square         pad=0.3

案例

importnumpy as npimportmatplotlib.pylab as plt

x= np.arange(0, 10, 0.005)

y= np.exp(-x / 2.) * np.sin(2 * np.pi *x)

fig=plt.figure()

ax= fig.add_subplot(111)

ax.plot(x, y)

ax.set_xlim(0,10)

ax.set_ylim(-1, 1)

xdata, ydata= 5, 0

xdisplay, ydisplay=ax.transData.transform_point((xdata, ydata))

bbox= dict(boxstyle=”round”, fc=”0.8″)

arrowprops= dict(arrowstyle=””,connectionstyle=”angle,angleA=0,angleB=90,rad=10″)

offset= 100ax.annotate(‘data = (%.1f, %.1f)’ %(xdata, ydata),

xy=(xdata, ydata), xytext=(1 * offset, offset), textcoords=’offset pixels’,

bbox=bbox, arrowprops=arrowprops)

disp= ax.annotate(‘display = (%.1f, %.1f)’ %(xdisplay, ydisplay),

(xdisplay, ydisplay), xytext=(0.5 * offset, -offset),

xycoords=’figure pixels’,

textcoords=’offset points’,

bbox=bbox, arrowprops=arrowprops)

plt.show()

matplotlib用于标注文字的函数_python annotate

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/234355.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • lm算法讲解_m算法

    lm算法讲解_m算法请问MATLAB中LM算法(Levenberg-Marquard-algorithm)的函数是什么?。http://www.mathworks.com/matlabcentral/fileexchange/16063-lmfsolve-m-levenberg-.%.去看吧好像没有二维的.你最好看看这个函数,根据LM算法的意义修改一下计算方法:用来产生一些数据片段(例如消息或会话项)的哈…

  • 如何使用ccs软件创建工程

    这里简叙如何使用ccs软件创建工程的具体步骤,正文如下:1、打开ccs软件,单击菜单栏中的“Project”选项,在弹出的下拉菜单中选择“NewCCSProject”,如下图所示:  2、在“Projectname”中输入自定义的工程名称,在“Family”中选择所需DSP的系列,在“Variant”的目录下选择所需的DSP的型号,最后在“Connection”目录下选择仿真…

  • IntelliJ IDEA 详细图解最常用的配置 ,适合刚刚用的新人。

    IntelliJ IDEA 详细图解最常用的配置 ,适合刚刚用的新人。IntelliJIDEA使用教程(总目录篇)刚刚使用IntelliJIDEA编辑器的时候,会有很多设置,会方便以后的开发,磨刀不误砍柴工。比如:设置文件字体大小,代码自动完成提示,版本管理,本地代码历史,自动导入包,修改注释,修改tab的显示的数量和行数,打开项目方式,等等一大堆东西。总结一下,免得下次换了系统,还得再找一遍配置。具体总结如下图:设置外观和字体大小这…

  • 好东西!

    好东西!

  • Mac JetBrains全家桶软件激活码_最新在线免费激活[通俗易懂]

    (Mac JetBrains全家桶软件激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~00OE…

  • Python – 数据类型之字符串、数字

    Python – 数据类型之字符串、数字数据类型之字符串、数字

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号