升级 matplotlib 后出现“ValueError:RGBA 值应在 0-1 范围内”

avi*_*iss 3 matplotlib python-3.x

我已经升级到3.0.2 matplotlib和低于我的脚本中使用我的3D绘图现在抛出这个错误:ValueError: RGBA values should be within 0-1 range。用 2.0.2 版本测试过,它在那里工作......试图谷歌搜索类似的问题,但找不到解决方法,所以向这个聪明的社区寻求帮助......

test = pd.DataFrame({'cluster': ["0", "1", "2"],
    'x': [2, 3, 1],
    'y': [10, 5, -2],
    'z': [-10, -5, 2]})

fig = plt.figure(figsize=(7,7))

ax = Axes3D(fig) 

x=test['x']
y=test['y']
z=test['z']
clusters = test['cluster']

ax.scatter(x, y, z, c=clusters, marker='x', cmap='tab20b', depthshade=False)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

plt.show()
Run Code Online (Sandbox Code Playgroud)

Imp*_*est 9

你的集群是字符串。在 matplotlib 2.1 之前,数组被巧合地转换为数字,以便代码可以运行。从 matplotlib 2.1 开始,您需要提供数字才能将它们解释为这样。例如

clusters = test['cluster'].astype(int)
Run Code Online (Sandbox Code Playgroud)