Я пытаюсь построить точки как с цветами, так и с метками. Это не классическая проблема: обычно пользователи Python устанавливают «метки» как категории. В этом случае я хочу, чтобы цвет представлял собой функцию, а метка была идентификатором самой точки. Это следует из игрушечного примера:
x = [-0.01611772, 1.51755901, -0.64869352, -1.80850313, -0.11505037]
y = [ 0.04845168, -0.45576903, 0.62703651, -0.24415787, -0.41307092]
colors = ['b', 'g', 'r', 'b', 'r']
labels = ['Gioele', 'Felix', 'Elpi', 'Roro', 'Cacara']
Я хотел бы использовать функцию разброса. После «быстрой» документации:
def scatter(x, y, s=20, c=None, marker='o', cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, hold=None, data=None, **kwargs) Inferred type: (x: Any, y: Any, s: int, c: Any, marker: unicode, cmap: Any, norm: Any, vmin: Any, vmax: Any, alpha: Any, linewidths: Any, verts: Any, edgecolors: Any, hold: Any, data: Any, kwargs: dict) -> Any
Итак, моя попытка была:
import pylab
pylab.scatter(x, y, c=colors, data=labels)
pylab.show()
но, кажется, игнорируя часть data=labels
.
Кроме того: предположим, что мы можем нанести метки, есть ли способ нанести их «умным» способом, то есть таким, чтобы метки не скрывали друг друга? Мне нужно что-то похожее на функцию R ggrepel
.