matplotlib画图、标点、打标签

本文详细介绍使用Python的matplotlib和numpy库进行函数图形绘制的方法,包括如何调整坐标轴、标注关键点及其坐标,并通过虚线突出显示。同时,介绍了如何为图形添加标题、保存图片,以及如何将坐标轴调整到原点位置。
部署运行你感兴趣的模型镜像

Rendering

这是想要的效果:
function-point-label

Notes

记录几个功能的做法:

  • 函数作图
  • 座标轴(下、左边框)移到过原点,上、右边框去掉
  • 标出一个点
  • 虚线描出这个点的横、纵坐标所在
  • 给这个点打标签
  • 图片标题
  • 保存

Code

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()

# 函数图
x = np.arange(0, 3, 0.01)
y = x ** 2 - 3 * x + 2
plt.plot(x, y)

# 标题
plt.title('x^2 - 3x + 2')

# 标点
plt.scatter([1.5], [-0.25], s=25, c='r')  # stroke, colour

# 虚线定位:两点确定一条直线
plt.plot([0, 1.5], [-0.25, -0.25], c='b', linestyle='--')
plt.plot([1.5, 1.5], [0, -0.25], c='b', linestyle='--')

# 点的标签(座标中加减的 `0.15` 是显示位置的偏移,避免挡住点)
plt.text(1.5+0.15, -0.25-0.15, 'minima', ha='center', va='bottom', fontsize=10.5)  # horizontal alignment
# 座标轴调位
ax = plt.gca()
# 去掉上、右边框
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
# 移到原点
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))

# 显示、保存
plt.show()
fig.savefig('fun.png')

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

Matplotlib是一个流行的Python数据可视化库,它允许用户创建各种类型的图表。当你在绘制图表时,可以设置坐标轴标签(axis labels)来清晰地标识x轴和y轴的数值含义。如果你想要将坐标轴标签的字体显示为英文,并且希望它们以方框的形式呈现,你可以使用`matplotlib.transforms.Affine2D`和`matplotlib.text.Text`的功能。 首先,你需要导入必要的模块,如`matplotlib.pyplot`、`matplotlib.transforms`和`matplotlib.text`: ```python import matplotlib.pyplot as plt from matplotlib.transforms import Affine2D from matplotlib.text import TextPath # 创建一个新的图形 fig, ax = plt.subplots() # 设置坐标轴 ax.set_xlabel('X Label') ax.set_ylabel('Y Label') # 创建一个文本对象,指定文字和变换 transform = Affine2D().translate(0, -40) + ax.transData # 下移一定距离 text_label = TextPath((0, 0), 'Your English Label', size=16) # 英文标签路径 label_box = ax.add_artist(text_label.transformed(transform)) # 添加到轴上 # 如果需要调整边框样式,例如设置白色背景和黑色文本 props = dict(boxstyle='square', facecolor='wheat', alpha=0.5) ax.text(0.05, 0.95, 'Your English Label', transform=ax.transAxes, fontsize=14, verticalalignment='top', bbox=props) plt.show() ``` 在这个例子中,我们创建了一个文本路径`TextPath`并添加到了坐标轴上,通过调整`Affine2D`变换来控制位置,同时设置了自定义的属性(如边框样式)来实现方框效果。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值