首页 > 解决方案 > 标签在 matplotlib 散点图中不起作用

问题描述

我正面临 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()

上面的代码产生以下图(注意散点图对应的标签缺失) -

在此处输入图像描述

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. "

以下是有关系统的信息-

请问有什么办法可以显示散点图的标签吗?

标签: pythonmatplotlibubuntu-14.04

解决方案


我试图在我的环境中运行你的代码,它适用于两个标签显示。这是我的版本

  • 蟒蛇:2.7.12
  • matplotlib:2.2.2

所以你可能只需要更新 matplotlib。


推荐阅读