лейбл не работает на графике рассеяния Matplotlib - PullRequest
0 голосов
/ 08 июня 2018

Я сталкиваюсь с этим странным поведением рассеивающего графика matplotlib, на котором не работает метка.Пожалуйста, смотрите фрагмент кода ниже -

import matplotlib
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

def get_data():
    n = 10
    theta = np.linspace(-4 * np.pi, 4 * np.pi, n)
    z = np.linspace(-2, 2, n)
    r = z**2 + 1
    x = r * np.sin(theta)
    y = r * np.cos(theta)
    return x, y, z

x, y, z = get_data()

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot(x, y, z, c='r', marker='o', label='plot label')
ax.scatter(x, y, z+1, c='b', marker='^', label='scatter label')

ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
ax.legend()
plt.show()

Приведенный выше код дает следующий график (обратите внимание, что отсутствует метка, соответствующая точечной диаграмме) -

enter image description here

Удивительно, но я получаю следующую ошибку, если прокомментирован ax.plot -

/usr/lib/pymodules/python2.7/matplotlib/axes.py:4747: UserWarning: No labeled objects found. Use label='...' kwarg on individual plots.
  warnings.warn("No labeled objects found. "

Ниже приведена информация о системе -

  • Python 2.7.6
  • версия matplotlib: 1.3.1
  • Ubuntu 14.04 LTS 64 Bit

Обходное решение для отображения метки графика рассеяния, пожалуйста?

1 Ответ

0 голосов
/ 08 июня 2018

Я попытался запустить ваш код в моей среде, и он работает с обоими метками.Вот мои версии

  • Python: 2.7.12
  • matplotlib: 2.2.2

Так что вам может потребоваться просто обновить matplotlib.

...