Ich versuche, Punkte mit der Funktion point3d() mit mayavi.mlab geplottet. Jeder Punkt ist mit einer Beschriftung verknüpft, die ich mit der text3d() - Funktion neben den Punkten darstellen möchte. Trägt man die Punkte ist schnell, aber die mlab.text3d() Funktion scheint nicht Arrays von Koordinaten zu akzeptieren, so dass ich über die Punkte Schleife und zeichnen den Text individuell, die sehr langsam ist:viele Punkte mit Text in mayavi kommentieren mit mlab
for i in xrange(0, self.n_labels):
self.mlab_data.append(
mlab.points3d(pX[self.labels == self.u_labels[i], 0],
pX[self.labels == self.u_labels[i], 1],
pX[self.labels == self.u_labels[i], 2],
color=self.colours[i],
opacity=1,
scale_mode="none",
scale_factor=sf))
idcs, = np.where(self.labels == self.u_labels[i])
for n in idcs.flatten():
mlab.text3d(pX[n, 0],
pX[n, 1],
pX[n, 2],
"%d" % self.u_labels[i],
color=self.colours[i],
opacity=1,
scale=sf)
Alle Ideen, wie ich das beschleunigen könnte? Ist es auch möglich, eine Legende hinzuzufügen (wie zum Beispiel in Matplotlib), konnte ich nichts in den Dokumenten finden.
Danke,
Patrick