向 matplotlib 中的图形添加文本

我想在 3D 线框图中添加一些文本。我从matplotlib 库中这个示例的代码开始。从Axes文档中我发现了一个text(). 如果我没看错,则需要 4 个位置参数(包括self)。我将示例修改如下:


from mpl_toolkits.mplot3d import axes3d

import matplotlib.pyplot as plt



fig = plt.figure()

ax = fig.add_subplot(111, projection='3d')


# Grab some test data.

X, Y, Z = axes3d.get_test_data(0.05)


# Plot a basic wireframe.

ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10)

ax.text(0, 0, "I'm here")

plt.show()


当我运行这段代码时,我得到


类型错误:文本()缺少 1 个必需的位置参数:'s'


我该如何解决?我在这里做错了什么?


撒科打诨
浏览 211回答 2
2回答

12345678_0001

在这种情况下,您不是在处理一个Axes对象,而是一个Axes3D对象。因此,您需要为其text()方法提供三个坐标编号,而不仅仅是 2。或者,您也可以使用该text2D()方法,它只需要两个坐标数输入参数。

斯蒂芬大帝

help(ax.text)提供正确的文档:Help on method text in module mpl_toolkits.mplot3d.axes3d:text(x, y, z, s, zdir=None, **kwargs) method of matplotlib.axes._subplots.Axes3DSubplot instance...所以你需要 3 个位置坐标,没有self.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python