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

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • redis 乐观锁_什么时候用乐观锁

    redis 乐观锁_什么时候用乐观锁文章目录GeospatialHyperloglogBitmapsRedis事务悲观锁和乐观锁JedisSpringboot继承RedisGeospatial存储地理位置的数据结构应用场景朋友的定位,附近的人,打车距离计算Geospatial底层使用的是Zset127.0.0.1:6379> geoadd city 116.23 40.22 beijing 添加一个数据127.0.0.1:6379> geoadd city 121.47 31.23 shanghai 118.77

    2022年8月9日
  • n皇后问题c语言代码_c语言序列求和输入两个正整数m和n

    n皇后问题c语言代码_c语言序列求和输入两个正整数m和nn皇后问题研究的是如何将n个皇后放置在n×n的棋盘上,并且使皇后彼此之间不能相互攻击。(即任意两个皇后都不能处于同一行、同一列或同一斜线上).上图为8皇后问题的一种解法。给定一个整数n,返回所有不同的n皇后问题的解决方案。每一种解法包含一个明确的n皇后问题的棋子放置方案,该方案中’Q’和’.’分别代表了皇后和空位。示例:输入:4输出:[…

    2022年9月29日
  • 4G与5G网络有哪些区别

    4G与5G网络有哪些区别一、帧结构比较4G和5G相同之处帧和子帧长度均为:10ms和1ms。 最小调度单位资源:RB  4G和5G不同之处1);子载波宽度4G:固定为15kHz。 5G:多种选择,15kHz、30kHz、60kHz、120kHz、240kHz,且一个5G帧中可以同时传输多种子载波带宽。  2);最小调度单位时间4G:TTI,1毫秒; 5G:slot,1/32毫秒~1毫秒,取决于子载波带宽。 此外5G新增mini-slot,最少只占用2个符号。  3);每子帧时

    2022年5月4日
  • nginx设置301永久重定向

    nginx设置301永久重定向

    2021年10月27日
  • 时滞_时滞现象名词解释

    时滞_时滞现象名词解释延迟微分方程matlab提供了dde23求解非中性微分方程。dde23的调用格式如下:sol=dde23(ddefun,lags,history,tspan)lags是延迟量,比如方程中包含y1(t-0.2)和y2(t-0.3)则可以使用lags=[0.2,0.3]。这里的ddefun必须采用如下的定义方式:dydt=ddefun(t,y,Z)其中的Z(:,1)就是y(t-la…

    2022年10月1日
  • spss 13.0 英文正式版14个模块的授权号码

    spss 13.0 英文正式版14个模块的授权号码

    2021年5月3日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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