2016-07-04 2 views
0

J'ai un graphique de surface avec une carte de couleurs spécifiée. Voici comment je l'obtiens:Colormap personnalisé dans matplotlib pour le graphique de surface 3D

import numpy as np 
import matplotlib.pyplot as plt 
import math 
from mpl_toolkits.mplot3d import Axes3D 
from matplotlib import cm 
import plaque_vessel_models 

# Model creation 
ptX= [] 
ptY = [] 
ptZ = [] 
ptX1 = [] 
ptY1 = [] 
ptZ1 = [] 
pt_F = [] 
ang = np.linspace(0,2*np.pi,360) 
x_list = [100,90,80,70,60,50,40,30,20,10,5] 
for i in range(0,10): 
    x = [] 
    y = [] 
    z = [] 
    pt = [] 

    for t in range(0,len(ang)): 
     x.append(x_list[i]*math.cos(ang[t])) 
     y.append(50*math.sin(ang[t])) 
     z.append(i) 
     pt.append([x,y,z]) 
    pt_F.append(pt) 
    ptX.append(x) 
    ptY.append(y) 
    ptZ.append(z) 

# Surface plot 
fig = plt.figure() 
ax = Axes3D(fig) 
C_l = plaque_vessel_models.curvature3D(np.array(ptX),np.array(ptY),np.array(ptZ),'m') 
ax.plot_surface(np.array(ptX),np.array(ptY),np.array(ptZ),facecolors = cm.jet(np.array(C_l)),rstride=1, cstride=5,antialiased=False) 
m = cm.ScalarMappable(cmap = cm.jet) 
m.set_array(C_l) 
fig.colorbar(m,shrink = 0.5) 

Ceci est mon résultat:

enter image description here

Je veux les valeurs colorbar à la gamme de 0,5 à 1,0 au lieu de la valeur par défaut 0-1. Comment dois-je aborder cela?

Répondre

1
m.set_clim(vmin=0.5, vmax=1.0)