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

相关推荐

  • 泰国80亿互联网记录数据库泄漏,疑遭黑客攻击[通俗易懂]

    泰国80亿互联网记录数据库泄漏,疑遭黑客攻击[通俗易懂]泰国最大的蜂窝网络AIS已使数据库脱机,疑遭黑客攻击,这使达80亿实时互联网记录泄漏到数百万泰国互联网用户上,该事件震惊整个泰国。全球著名白帽黑客、东方联盟创始人郭盛华博客文章中说,他在互联网上没有密码就找到了包含DNS查询和Netflow数据的数据库。通过访问该数据库,任何人都可以“快速描绘”互联网用户(或其家庭)的实时行为。他表示:“在数据库中找到的记录只能来自能够监视Internet流量在网络上流动的人。但是,没有一种简单的方法可以区分数据库是属于Internet提供商还…

  • 俞敏洪新东方的起步_新东方俞敏洪的故事

    俞敏洪新东方的起步_新东方俞敏洪的故事来源:国王与王后丨作者: 果子离啊数据猿官网|www.datayuan.cn今日头条丨一点资讯丨腾讯丨搜狐丨网易丨凤凰丨阿里UC大鱼丨新浪微博丨新浪看点丨百度百家丨博…

  • java解析json转Map

    java解析json转Map前段时间在做json报文处理的时候,写了一个针对不同格式json转map的处理工具方法,总结记录如下:1、单节点单层级、单节点多层级json转mapimportjava.util.ArrayList;importjava.util.HashMap;importjava.util.Iterator;importjava.util.List;importjava.util.Map;i

  • Python if用法_无内嵌的if语句

    Python if用法_无内嵌的if语句本文的主要内容是介绍Python中if语句及其使用,包括条件测试、if-else语句、if-elif-else语句以及使用if语句处理列表操作,文中附有代码以及相应的运行结果辅助理解。

  • 浅谈linux的命令行解析参数之getopt_long函数「建议收藏」

    浅谈linux的命令行解析参数之getopt_long函数「建议收藏」前言     在linux中,经常需要各种命令,通常情况下都会带各种参数,而这些参数是如何解析的呢?通常使用GNUC提供的函数getopt、getopt_long、getopt_long_only函数来解析命令行参数。一、关于命令行参数   命令行参数可以分为两类,一类是短选项,一类是长选项,短选项在参数前加一杠"-",长选项在参数前连续加两杠"–",如下表(ls命令参数)所示,…

  • pycharm汉化版安装[通俗易懂]

    pycharm汉化版安装[通俗易懂]pycharm汉化版安装想要学好一门语言一款好用的编辑软件非常的重要,最近公司要做一款智能机器人的客服聊天系统,用到python刚开始使用eclipse编辑,发现效果不太理想,毕竟不是专业化软件。好了废话少说开启pycharm的安装之旅吧!一、首先呢当然是下载,不过呢我已经准备好了!赶快通过百度云下载吧,链接:百度云链接密码:32g6二、下载完成解压到自己想保存

发表回复

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

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