python画图,matplotlib如何为坐标点添加text文本?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
书接上文,在matplotlib
的pyplot
画图中,使用annotate
注释功能为目标坐标点添加了文本显示更多信息。实际上还有一个非常类似的.text()
功能也可以添加文本,实现对目标点添加更多信息的目的。
大家好,这里是苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验。本文描述plot
画图的.text()
添加文本功能。测试环境:win10
,python@3.11.0
,pandas@1.5.3
,numpy@1.24.2
,matplotlib@3.7.1
。本文的内容也不求大而全,用到哪里就写哪里。
.annotate()
对比.text()
.annotate()
和.text()
功能比较类似,如果大家看下面这篇文章的话,会发现很多相似的参数和用法:
下面的是两者用法的最简单对比:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 3)
y = x * x + 0.5
plt.plot(x, y, marker="o")
for xy in zip(x, y):
# 任选一句话即可
plt.annotate("(%s,%s)annotate" % xy, xy=xy)
plt.text(xy[0], xy[1], "(%s,%s)text" % xy)
plt.show()
在这个例子中,两者做到了完全一致的效果。但是,并不是说两者就是相同的用法。如果仔细查看两者的说明的话,可以看到两者的高级用法还是有所区别的,比如注释功能里面可以画箭头,文本功能里面可以设置对齐和旋转。
函数原型综述
函数的原型是这样的:
plt.text(x, y, string, size, family, color, style, weight, verticalalignment, horizontalalignment, rotation, bbox=dict(facecolor, alpha, boxstyle))
参数 | 注释 |
---|---|
x | 文本位置的横坐标 |
y | 文本位置的纵坐标 |
string | 文本内容 |
size | 文本字体大小 |
family | 文本字体类型:比如宋体、Times new roman等 |
color | 文本字体颜色 |
style | 文本字体风格:italic(斜体) |
weight | 文本线条粗细:light |
verticalalignment | 垂直对齐方式 ,可选 center/top/bottom/baseline 等 |
horizontalalignment | 水平对齐方式 ,可选 center/right/left 等 |
rotation | 标签的旋转角度,以逆时针计算,取整 |
bbox | 文本背景框设置 |
bbox
参数:
参数 | 注释 |
---|---|
facecolor | 背景颜色 |
alpha | 背景颜色的透明度 |
boxstyle | 背景框的风格,默认是直角,boxstyle="round"为圆角 |
更多例子
plt.text(xy[0], xy[1], "(%s,%s)" % xy, size=12, family="Times new roman", color="black", style='italic', weight = "light", bbox=dict(facecolor="yellow", alpha=0.5, boxstyle="round"))
相关文章
- https://newsn.net/say/php-graphviz.html
- https://newsn.net/say/plot-cn.html
- https://newsn.net/say/plot-scatter.html
- https://newsn.net/say/plot-annotate.html
总结
到底是使用.annotate()
功能,还是使用.text()
功能,就看实际的需求了。如果需求非常简单的话,用谁都是可以的,但是参数的传递方式是完全不一致的,还请具体使用的时候做些分析。
更多苏南大叔的关于plot
画图的碎碎念,请参考:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。