title: How to a reach solid surface in 3d surface in matplotlib?
body: <p>How to reach a solid surface in 3d surface in matplotlib, please? I tried to apply plot_surface more times, but the refinement is limited and not enough. The transparency is still obvious. More sample also did not help.</p>
  <pre><code>from matplotlib import cm
  from mpl_toolkits.mplot3d import Axes3D
  import matplotlib.pyplot as plt
  import numpy as np
  
  # Coordinate for the cylinder
  def data_for_cylinder_along_z(center_x,center_y,radius,height_z):
      z = np.linspace(0, height_z, 200)
      theta = np.linspace(0, 2*np.pi, 200)
      theta_grid, z_grid=np.meshgrid(theta, z)
      x_grid = radius*np.cos(theta_grid) + center_x
      y_grid = radius*np.sin(theta_grid) + center_y
      return x_grid,y_grid,z_grid
  
  fig = plt.figure(figsize = (5,10))
  ax = fig.add_subplot(111, projection='3d')
  
  ax.set_xlim(-2, 2)
  ax.set_ylim(-2, 2)
  ax.set_zlim(0, 10)
   
  ax.get_proj = lambda: np.dot(Axes3D.get_proj(ax), np.diag([0.4, 0.4, 1.6, 1])) # (x, y, z) ration of sides
  
  theta1 = np.linspace(0, 2*np.pi, 100)
  r1 = np.linspace(-2, 0, 100)
  t1, R1 = np.meshgrid(theta1, r1)
  
  X1 = R1*np.cos(t1)
  Y1 = R1*np.sin(t1)
  Z1 = 3+R1*1.5+4
  
  ax.set_xlabel('x axis')
  ax.set_ylabel('y axis')
  ax.set_zlabel('z axis')
  
  ax.plot_surface(X1, Y1, Z1, color=&quot;dimgray&quot;)
  ax.plot_surface(X1, Y1, Z1, color=&quot;dimgray&quot;)
  
  # Cylinder
  Xc,Yc,Zc = data_for_cylinder_along_z(0,0,2,4)
  
  rep=10
  for i in range(rep):
      ax.plot_surface(Xc, Yc, Zc, color = 'palegoldenrod')
  
  
  plt.show()
  </code></pre>