On Wed, Aug 28, 2013 at 06:39:26PM +0200, vwf wrote: > Hello, > > I would like to create a surface with a color provided by an independent > variable.
Got something working: import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D from matplotlib import cm from matplotlib.ticker import LinearLocator, FormatStrFormatter no=100 #======================================== # color trick to draw with varying alpha # http://matplotlib.1069221.n5.nabble.com/scatter-plot-individual-alpha-values-td21106.html #======================================== from matplotlib.colors import LinearSegmentedColormap class LinearColormap(LinearSegmentedColormap): def __init__(self, name, segmented_data, index=None, **kwargs): if index is None: # If index not given, RGB colors are evenly-spaced in # colormap. index = np.linspace(0, 1, len(segmented_data['red'])) for key, value in segmented_data.iteritems(): # Combine color index with color values. segmented_data[key] = zip(index, value) segmented_data = dict((key, [(x, y, y) for x, y in value]) for key, value in segmented_data.iteritems()) LinearSegmentedColormap.__init__(self, name, segmented_data, **kwargs) color_spec = {'blue': [0.0, 0.0], 'green': [1.0, 0.0], 'red': [0.0, 1.0], 'alpha': [0.1, 1.0]} alpha_color = LinearColormap('alpha_color', color_spec) #========================================== fig = plt.figure() ax = fig.gca(projection = '3d') x = np.linspace(-5,5,no) y = np.linspace(-5,5,no) x,y = np.meshgrid(x,y) R = np.sqrt(x**2 + y**2) z = np.sin(R) D = np.sqrt((x-5)**2 + (y-5)**2) c=np.zeros(shape=(no,no),dtype=object) for i in range(no): for j in range(no): c[i,j]=alpha_color(D[i,i]/15) surf = ax.plot_surface(x, y, z, facecolors=c, rstride = 1, cstride = 1, linewidth = 0) ax.set_zlim3d(-2, 2) plt.show() ------------------------------------------------------------------------------ Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users