python中plot的plt.text_matplotlib可视化篇annotate(),text()--注释文本

本文介绍了Python的matplotlib库中用于图注释的annotate()和text()函数。annotate()用于创建指向型注释,包含多种参数定制箭头和文本样式;text()则用于添加无指向型注释,支持字体、大小和样式的设置。通过示例代码展示了这两个函数的使用方法及其在图形中的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本节内容: 1. 指向型注释annotate() 2. 无指向型注释text()

1. matplotlib.pyplot.annotate()

功能:在图中带有指向型文本注释信息,突显细节,官方项目地址,高级玩法,下面列出常用参数信息。

s:str, 注释信息内容

xy:(float,float), 箭头点所在的坐标位置

xytext:(float,float), 注释内容的坐标位置

weight: str or int, 设置字体线型,其中字符串从小到大可选项有{'ultralight', 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black'}

color: str or tuple, 设置字体颜色 ,单个字符候选项{'b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'},也可以'black','red'等,tuple时用[0,1]之间的浮点型数据,RGB或者RGBA, 如: (0.1, 0.2, 0.5)、(0.1, 0.2, 0.5, 0.3)等

arrowprops:dict,设置指向箭头的参数,字典中key值有①arrowstyle:设置箭头的样式,其value候选项如'->','|-|','-|>',也可以用字符串'simple','fancy'等,详情见顶部的官方项目地址链接。

②connectionstyle:设置箭头的形状,为直线或者曲线,候选项有'arc3','arc','angle','angle3',可以防止箭头被曲线内容遮挡

③color:设置箭头颜色,见前面的color参数。

bbox:dict,为注释文本添加边框,其key有①boxstyle,其格式类似'round,pad=0.5',其可选项如下:

boxstyle详细设定②facecolor(可简写为fc)设置背景颜色

③ edgecolor(可简写为ec)设置边框线条颜色

④lineweight(可简写为lw)设置边框线型粗细

⑤alpha设置透明度,[0,1]之间的小数,0代表完全透明,即类似③颜色设置无效。

# annotate()函数使用

import matplotlib.pyplot as plt

import numpy as np

x=np.linspace(0,10,200)#从0到10之间等距产生200个值

y=np.sin(x)

plt.plot(x,y,linestyle='-.',color='purple')

plt.annotate(s='Here I am',xy=(3,np.sin(3)),xytext=(4,-0.5),weight='bold',color='aqua',\

arrowprops=dict(arrowstyle='-|>',connectionstyle='arc3',color='red'),\

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

plt.show()

annotate()函数实现效果

2. 无指向型的注释文本 matplotlib.pyplot.text()函数,即只会在图中添加注释内容而无指向箭头。

参数信息:plt.text(x,y,s,family,fontsize,style,color)

补充说明

x,y代表注释内容位置,s代表注释文本内容,family设置字体,自带的可选项有{'serif', 'sans-serif', 'cursive', 'fantasy', 'monospace'},fontsize字体大小,style设置字体样式,可选项{'normal', 'italic'(斜体), 'oblique'(也是斜体)}

import matplotlib.pyplot as plt

import numpy as np

x=np.linspace(0,10,200)#从0到10之间等距产生200个值

y=np.sin(x)

plt.plot(x,y,linestyle='-.',color='dodgerblue')

# plt.text(x,y,s,family,fontsize,style,color)

plt.text(4, 0, 'Here you are', family='fantasy', fontsize=12, \

style='italic',color='mediumvioletred')

plt.show()

text()函数效果

总结

matplotlib画图函数有很多花样,函数参数内容可以互相借鉴,比如plt.text()中也可以添加bbox内容,文中没有标出,还有很多参数可以添加,有一些目前也没测试效果,之后测试会更新内容。

### 使用 `plt.annotate` 和 `plt.text()` 方法 #### Annotate 函数详解 在 PythonMatplotlib 库中,`plt.annotate()` 是用于向图表添加带有指向特定位置箭头的注释的方法[^2]。此方法允许指定要显示的文字以及该文字所指的位置。 语法如下: ```python plt.annotate(s, xy, xytext=None, arrowprops=None, **kwargs) ``` - 参数 `s`: 要添加到图中的字符串形式的注释文本- 参数 `xy`: 注释目标点坐标 (x,y),也就是箭头末端所在的坐标。 - 参数 `xytext`: 文本框左下角相对于屏幕的比例坐标,默认情况下与 `xy` 值相同;如果提供了这个参数,则会创建一条连接 `xy` 到 `xytext` 的线段作为指示箭头。 - 参数 `arrowprops`: 字典类型的数据结构,定义了箭头属性,比如颜色、样式等。 下面是一个简单的例子展示如何使用 `plt.annotate()` 来标记一个特殊点并附带说明性的文本: ```python import matplotlib.pyplot as plt fig, ax = plt.subplots() line, = ax.plot(range(10)) # 添加注解 plt.annotate( 'Special point', xy=(7, line.get_data()[1][7]), # 箭头尖端位置 xytext=(8, 5), # 解释文本位置 ha='center', # 水平对齐方式 va='bottom', # 垂直对齐方式 bbox=dict(boxstyle="round,pad=0.3", fc="cyan"), arrowprops=dict(facecolor='black', shrink=0.05), ) plt.show() ``` 这段代码将在第七个数据点处放置一个圆圈,并通过黑色实心箭头链接至右侧上方的一段描述性文字 "Special Point"[^3]。 #### Text 函数详解 对于不需要任何方向指引的情况,可以简单地调用 `matplotlib.pyplot.text()` 函数,在给定位置直接插入一段静态文本[^4]。这适用于那些只需要提供额外上下文信息而不必特别强调某个具体坐标的场景。 以下是利用 `plt.text()` 插入纯文本的例子: ```python import numpy as np import matplotlib.pyplot as plt mu, sigma = 100, 15 x = mu + sigma * np.random.randn(10000) n, bins, patches = plt.hist(x, 50, density=True, facecolor='g', alpha=0.75) plt.xlabel('Smarts') plt.ylabel('Probability') plt.title('Histogram of IQ') # 在图内任意位置写入固定文本 plt.text(-40, .025, r'$\mu=100,\ \sigma=15$') plt.grid(True) plt.show() ``` 在这个案例里,`plt.text()` 将公式 $\mu=100,\ \sigma=15$ 放置到了 (-40,.025) 这一相对位置上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值