Как создать трехмерный график рассеяния, но я хочу, чтобы "x" или "o" зависели от четвертого параметра? - PullRequest
0 голосов
/ 07 февраля 2020

По сути, я занимаюсь баскетболом. У меня есть текстовый файл с более чем 100 000 симуляций. Оси трехмерной диаграммы рассеяния должны занимать 2-й, 3-й и 4-й столбцы (представляющие 3 различных физических параметра) баскетбольного мяча. Тем не менее, существует 5-й столбец, в котором указывается, прошел ли баскетбольный мяч или нет, основываясь на 3 параметрах. Я могу легко изобразить 3 параметра, но как я могу go описать «x» (пропустить) или «o» (сделать) для соответствующих 3 параметров?

В настоящее время я использую PlotLy для сделать визуализацию. Любая помощь будет оценена друзьями!

1 Ответ

0 голосов
/ 07 февраля 2020

Я не знаю, как это сделать с plotly. Но в matplotlib это легко сделать:

Код:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d

# generate some data
x = np.random.randn(10)
y = np.random.randn(10)
z = np.random.randn(10)

misses = np.zeros(10)
misses[5] = 1  # add a miss point

fig = plt.figure(figsize=(5, 5))
ax = fig.add_subplot(projection='3d')

# plot regular points: misses = 0
ax.scatter(x[misses == 0], y[ misses == 0], z[ misses == 0], s=100, marker='o', c='g')
# plot regular misses: points = 1
ax.scatter(x[misses == 1], y[ misses == 1], z[ misses == 1], s=100, marker='x', c='r')

plt.show()

Сюжет:

img

...