Добавить точку на точечный график в Python - PullRequest
0 голосов
/ 12 октября 2018

У меня есть облако точек, и для его отображения я использую библиотеку matpyplot.Затем я хочу добавить к этой фигуре одну точку, которая является центром тяжести этого облака.Вот мой код

point_list, centroid_list = points(dataset[:, :7])
# take one point cloud 
points = np.array(point_list[0])
# take the centroid of that point cloud
centroid = np.array(centroid_list[0])
f = plt.figure(figsize=(15, 8))
ax = f.add_subplot(111, projection='3d')
ax.scatter(*np.transpose(points[:, [0, 1, 2]]), s=1, c='#FF0000', cmap='gray')
ax.plot(centroid, 'or') # this line doesn't work
plt.show()

Линия для рисования облака точек - моя проблема, я не знаю, как добавить точку.Я пробовал с некоторыми решениями в другой теме, но они не работают.Я хотел бы нарисовать центроид другим цветом и, возможно, больше, например, используя обозначение для точечной диаграммы s=5, c='#00FF00'.

1 Ответ

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

Следующий рабочий код должен дать вам некоторое представление.Как-то в вашем коде размеры / форма центроида не согласованы.Вы можете адаптировать линию соответственно.

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

points = np.random.normal(size=(20,3))
# take the centroid of that point cloud
centroid = np.asarray([0.,0.,0.])
f = plt.figure(figsize=(15, 8))
ax = f.add_subplot(111, projection='3d')
ax.scatter(*np.transpose(points[:, [0, 1, 2]]), s=1, c='#FF0000', cmap='gray')
ax.plot([centroid[0]],[centroid[1]],[centroid[2]],'or') # this line doesn't work
plt.show()
...