Axes3D.text () Аннотировать трехмерную диаграмму рассеяния - PullRequest
0 голосов
/ 24 мая 2019

Не удается получить 3D-текст, работающий для аннотирования точек рассеянного графика.

Пробовал Axes3D.text, plt.text, но продолжаю получать «пропущенные обязательные позиционные аргументы» s.Как вы аннотируете в 3D в цикле?

from mpl_toolkits.mplot3d import Axes3D 
import matplotlib.pyplot as plt
from matplotlib.patches import Ellipse
import pandas as pd
import numpy as np

df = pd.read_csv (r'J:\Temp\Michael\Python\9785.csv')

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

#Scatter plot
for i in df.index:
    x = df.at[i,'x']
    y = df.at[i,'y']
    z = df.at[i,'h']
    ax.scatter(xs=x, ys=y, zs=z, s=20,color='red',marker='^')
    label = df.at[i,'to']
    Axes3D.text(x+0.8,y+0.8,z+0.8, label, zdir=x)

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

1 Ответ

0 голосов
/ 24 мая 2019

Изменение: ax = fig.add_subplot (111, projection = '3d')

to: ax = fig.gca (projection = '3d')

решило проблему.Используется ax.text.

from mpl_toolkits.mplot3d import Axes3D 
import matplotlib.pyplot as plt
from matplotlib.patches import Ellipse
import pandas as pd
import numpy as np

df = pd.read_csv (r'J:\Temp\Michael\Python\9785.csv')

fig = plt.figure()
ax = fig.gca(projection='3d')

#Scatter plot
for i in df.index:
    df.set_index('to')
    x = df.at[i,'x']
    y = df.at[i,'y']
    z = df.at[i,'h']
    ax.scatter(xs=x, ys=y, zs=z, s=20,color='red',marker='^')
    ax.text(x+0.8,y+0.8,z+0.8, df.at[i,'to'], size=10, zorder=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...