Python Matplotlib: Затенение 3D Scatter Plot - PullRequest
0 голосов
/ 26 октября 2018

У меня точечная диаграмма трехмерного облака точек (см. Рисунок).Зеленые точки на самом деле образуют выдавливание в форме звезды, синие - это пятиугольник и т. Д., Но это очень трудно увидеть.Поэтому я хотел бы иметь некоторую «затененность» облаков точек.Это можно сделать для поверхностей (как обсуждено здесь :

Код, который у меня есть в настоящее время:

import sys
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()  # for plot styling

filename = sys.argv[1]
# flow_events = np.loadtxt(filename, comments='#')
flow_events = pd.read_csv(filename, delimiter = "\t", skiprows=1, names=["event_x", "event_y", "event_ts", "event_label"])
n_flow_events = flow_events.values

# start = int(n_flow_events.shape[0]/3.0)
end = int(n_flow_events.shape[0]/10.0*7)
start = 0
# end = n_flow_events.shape[0]

events = n_flow_events[start:end, :]

number_to_display = 5
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(events[0::number_to_display, 0], events[0::number_to_display, 1], events[0::number_to_display, 2], c=(events[0::number_to_display, 3]+4), s=4, cmap=plt.cm.brg)

ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('time [s]')

plt.show()

The point cloud

1 Ответ

0 голосов
/ 26 октября 2018

Так что это не совсем решение вопроса, который я задал, но в итоге я сделал то, что предложил mauve: Point cloud caps in black

...