2

当使用matplotlib'sscatter模块在 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()

在此处输入图像描述

4

1 回答 1

3

问题中的代码在 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')
于 2017-07-14T20:53:03.057 回答