ich habe für eine gegebene Zahl an Atomen eine farbliche Zuordnung anhand ihrer Ordnungszahl getroffen. Die entsprechenden Farben sind in der Liste colmap abgelegt. Nun wollte ich über den LUT-Manager entsprechend die Farben zuordnen, verstehe das Prinzip dieses Managers bzw. der Erstellung einer eigen colormap nicht. Mir scheint dies auch nicht der richtige Weg zu sein, da ja in lut 'lediglich' 256 Farbwerte stehen und die Zahl der Listenelemente in colmap diese auch überschreiten könnte.
Wie kann ich jedem Atom bzw. jeder Ordnungszahl seine eigene Farbe zuordnen? Herhalten soll übrigens das JMol-Farbschema.
Code: Alles auswählen
from enthought.mayavi import mlab
x = [0,0.0,0.5]
y = [0,1.0,0.5]
z = [0,0.0,0.5]
s = [.8, .70, .50]
colmap = [(255,0,0),(0,255,0),(0,0,255)] #Farbtabelle, Zahl der Tupel in Abhängigkeit von Zahl der Koordinaten
mol = mlab.points3d(x, y, z, s, resolution=20, scale_factor=1)
lut = mol.module_manager.scalar_lut_manager.lut.table.to_array()
for i in range(0,len(colmap)): #Schreibe Farbwerte aus colmap in lut
print i
lut[i,0] = colmap[i][0]
lut[i,1] = colmap[i][1]
lut[i,2] = colmap[i][2]
print colmap[i]
print lut[i]
for i in range(len(colmap),256): #Fülle den Rest mit Nullen
lut[i,:] = 0
print lut
mol.module_manager.scalar_lut_manager.lut.table = lut
mlab.show()