title: Gradient based on the edges - matplotlib plot_trisurf
body: <p>I am trying to generate a 3d visualization of a set of points. I need to create this visualization based on the triangulation generated from these points. In addition, the third dimension of my data defines the color.</p>
  
  <p>More precisely, my data is the following:</p>
  
  <pre><code>2.17    0.001   0.82044815
  2.17    0.002   0.82345825
  2.17    0.004   0.82679255
  2.17    0.008   0.83334715
  2.17    0.016   0.84395915
  2.17    0.032   0.8584953
  2.21    0.001   0.77582165
  2.21    0.003   0.78520505
  2.21    0.009   0.80205985
  2.21    0.027   0.83085105
  2.24    0.001   0.7227885
  2.24    0.002   0.73391615
  2.24    0.005   0.7543979
  2.24    0.015   0.78798745
  2.24    0.003   0.74176635
  2.24    0.009   0.77064805
  2.24    0.027   0.81042375
  2.26    0.001   0.66545585
  2.26    0.003   0.7012046
  2.26    0.005   0.721067
  2.26    0.009   0.7447984
  2.26    0.015   0.76715245
  2.26    0.027   0.794177
  2.27    0.001   0.62916195
  2.27    0.003   0.6774642
  2.27    0.009   0.72961785
  2.27    0.027   0.7861086
  2.28    0.001   0.5750828
  2.28    0.003   0.65059675
  2.28    0.005   0.6802631
  2.28    0.009   0.7145367
  2.28    0.015   0.74447695
  2.28    0.027   0.7774403
  2.29    0.001   0.51357255
  2.29    0.002   0.581053
  2.29    0.003   0.6173075
  2.29    0.009   0.6972096
  2.29    0.027   0.76793225
  2.31    0.001   0.36997965
  2.31    0.002   0.474415
  2.31    0.003   0.53649295
  2.31    0.009   0.6587164
  2.31    0.016   0.70870255
  2.31    0.027   0.7482423
  2.31    0.05    0.7912395
  2.34    0.001   0.2204104
  2.34    0.002   0.316308
  2.34    0.003   0.39256745
  2.34    0.004   0.45240835
  2.34    0.009   0.5883453
  2.34    0.016   0.6590771
  2.34    0.027   0.71444205
  2.34    0.05    0.7690014
  2.38    0.001   0.13286995
  2.38    0.002   0.1828288
  2.38    0.004   0.2980268
  2.38    0.008   0.4507145
  2.38    0.016   0.58417075
  2.38    0.032   0.6833616
  </code></pre>
  
  <p>And my desired result is (it was generated by using latex/pgfplotslibrary):</p>
  
  <p><a href="https://i.stack.imgur.com/WbiR4.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/WbiR4.png" alt="Expected result"></a></p>
  
  <p>Now I want to generate the same visualization using python. Unfortunately, my problem is to provide a smooth transition of the color inside each triangle/face, like in the image above. I know how to generate a smooth transition using the tripcolor function with the option shading='gouraud'. Is there something similar to plot my data using the plot_trisurf? Moreover, how can I add the points that compose each triangle?</p>
  
  <p>My current code is the following:</p>
  
  <pre><code>from mpl_toolkits.mplot3d import Axes3D
  import numpy as np
  import matplotlib.pyplot as plt
  import matplotlib.tri as mtri
  
  dat2 = np.loadtxt("/data/data.txt")
  
  x = dat2[:,0].astype(np.float)
  y = dat2[:,1].astype(np.float)
  z = dat2[:,2].astype(np.float)
  
  triang = mtri.Triangulation(x, y)
  
  fig = plt.figure()
  ax = fig.gca(projection='3d')
  surf = ax.plot_trisurf(triang, z, linewidth=0.1, antialiased=True, cmap='gray_r', shade=True)
  fig.colorbar(surf)
  plt.title('Triplot with trisurf')
  plt.show()
  </code></pre>
  
  <p>The result of the code above is:</p>
  
  <p><a href="https://i.stack.imgur.com/92fq0.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/92fq0.png" alt="enter image description here"></a></p>