forked from marcomusy/vedo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mesh_lut.py
39 lines (33 loc) · 1.44 KB
/
mesh_lut.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
"""Build a custom colormap, including
out-of-range and NaN colors and labels"""
from vedo import buildLUT, Sphere, show, settings
settings.useDepthPeeling = True # might help with transparencies
# generate a sphere and stretch it, so it sits between z=-2 and z=+2
mesh = Sphere(quads=True).scale([1,1,2]).lineWidth(0.1)
# create some dummy data array to be associated to points
data = mesh.points()[:,2] # pick z-coords, use them as scalar data
data[10:70] = float('nan') # make some values invalid by setting to NaN
data[300:600] = 100 # send some values very far above-scale
# build a custom LookUp Table of colors:
# value, color, alpha
lut = buildLUT([
#(-2, 'pink' ), # up to -2 is pink
(0.0, 'pink' ), # up to 0 is pink
(0.4, 'green', 0.5), # up to 0.4 is green with alpha=0.5
(0.7, 'darkblue' ),
#( 2, 'darkblue' ),
],
vmin=-1.2, belowColor='lightblue',
vmax= 0.7, aboveColor='grey',
nanColor='red',
interpolate=False,
)
# 3D scalarbar:
mesh.cmap(lut, data).addScalarBar3D(title='My 3D scalarbar', c='white')
mesh.scalarbar.scale(1.5).rotateX(90).y(1) # make it bigger and place it
# 2D scalarbar:
# mesh.cmap(lut, data).addScalarBar()
show(mesh, __doc__,
axes=dict(zLabelSize=.04, numberOfDivisions=10),
elevation=-80, bg='blackboard',
).close()