Добавить текст к рисунку в matplotlib - PullRequest
0 голосов
/ 15 октября 2019

Я хочу добавить текст в трехмерный каркасный график. Я начинаю с кода из этого примера в галерее 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()

Когда я запускаю этот код, я получаю

TypeError: text () отсутствует 1 обязательный позиционный аргумент: 's'

Как это исправить? Что я здесь не так делаю?

Ответы [ 2 ]

1 голос
/ 15 октября 2019

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.

1 голос
/ 15 октября 2019

В этом случае вы имеете дело не с объектом Axes, а с объектом Axes3D. Таким образом, вам нужно предоставить три координатных числа его методу text() вместо просто 2.

В качестве альтернативы вы также можете использовать метод text2D(), который делаеттребуется только два входных аргумента числа координат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...