当使用matplotlib
的scatter
模块在3D上绘制分散数据时,选项color
和marker
行为不符合预期,例如
color='r',marker='o'
生成由红色圆圈包围的蓝色点,而不是仅填充红色圆圈。
为什么会发生这种情况?
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
N = 100
x = 0.9 * np.random.rand(N)
y = 0.9 * np.random.rand(N)
z = 0.9 * np.random.rand(N)
##### Plotting:
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.scatter(x, y, z, color='r', marker='o')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.show()
最佳答案
问题中的代码在 matplotlib 2.0.2 中生成带有红点的预期绘图。如果您有旧版本,这可能会有所不同。
除了
ax.scatter(x, y, z, color='r', marker='o')
您还可以尝试使用 c
参数,它通常用于定义散点的颜色
ax.scatter(x, y, z, c='r', marker='o')
您还可以使用facecolors
参数
ax.scatter(x, y, z, facecolors='r', marker='o')
关于matplotlib 的 scatter 模块在 3D 图中的 "color"和 "marker"选项的行为不符合预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45111108/