Как дать случайным образом только n (скажем, 3) цветов точкам диаграммы рассеяния в Python? - PullRequest
0 голосов
/ 29 мая 2019

Сгенерировал случайные числа x, y, z, затем поместил их в трехмерный график рассеяния, но не смог построить точки случайным образом с 3 конкретными цветами (скажем, красным, черным, желтым).

В документации matplotlib.pyplot.scatter , я не могу понять другие 3 способа задания цветов, кроме 1-го.

Код:

import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d, Axes3D

x, y, z = np.random.rand(3,50)

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x,y,z,marker='.',color='b')

ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')

plt.show()

1 Ответ

1 голос
/ 29 мая 2019

Если вы просто хотите случайным образом назначить цвет каждой точке из набора из n цветов, вы можете сделать это следующим образом:

import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d, Axes3D

x, y, z = np.random.rand(3,50)
n=3
colors = np.random.randint(n, size=x.shape[0])

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x,y,z,marker='.',c=colors)

ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')

plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...