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

相关推荐

  • bfs是什么意思_bfs实现

    bfs是什么意思_bfs实现Rubik 先生在发明了风靡全球的魔方之后,又发明了它的二维版本——魔板。这是一张有 8 个大小相同的格子的魔板:1 2 3 48 7 6 5我们知道魔板的每一个方格都有一种颜色。这 8 种颜色用前 8 个正整数来表示。可以用颜色的序列来表示一种魔板状态,规定从魔板的左上角开始,沿顺时针方向依次取出整数,构成一个颜色序列。对于上图的魔板状态,我们用序列 (1,2,3,4,5,6,7,8) 来表示,这是基本状态。这里提供三种基本操作,分别用大写字母 A,B,C 来表示(可以通过这些操作改变魔板

  • android登录注册跳转的代码_Android开发代码

    android登录注册跳转的代码_Android开发代码1.用户接口registerReceiverframeworks/base/core/java/android/content/ContextWrapper.java  publicIntentregisterReceiver(BroadcastReceiverreceiver,IntentFilterfilter){    returnmBase.registerRe…

  • hash校验软件_hash加密

    hash校验软件_hash加密【Hash篇】HashTab一款可扩展资源管理器的哈希校验软件​ HashTab是一款非常优秀的Windows资源管理器扩展程序,它在资源管理器的属性窗口中添加了”文件校验”的标签,可以非常方便地校验文件的CRC32、MD5、SHA1等校验值,另外还可以迅速与其他文件进行哈希值比对!—【suy】文章目录【Hash篇】HashTab一款可扩展资源管理器的哈希校验软件1、自定义哈希算法2、文件比较功能3、下载地址总结1、自定义哈希算法​ HashTab可计算和显示来自二十多种流行的哈希算法的哈希值,

  • Xmpp学习之Android-smack入门指导

    Xmpp学习之Android-smack入门指导Xmpp学习之Androidsmack入门指导版权声明:本文为博主原创文章,未经博主允许不得转载。转载请表明出处:http://www.cnblogs.com/cavalier/p/69404

  • pytest 执行用例_测试用例执行结果有哪些

    pytest 执行用例_测试用例执行结果有哪些前言平常我们功能测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟,如果单个测试人员执行需要1000分钟才能跑完当项目非常紧急时,会需要协调多个测试资源来把任务分成两部分,于是执行时间

  • java 除法取商_java除法怎样取小数部分「建议收藏」

    java 除法取商_java除法怎样取小数部分「建议收藏」2016-09-0100:30最佳答案C++的优先级优先级操作符结合性1::左2.->[]()左3++–~!-+&*()sizeofnewdeletecastname_cast单目操作符右4.*->*左5*/%左6+-左7<<>>左8<<=>>=…

发表回复

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

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