Surface plot of the quasiparticle weight as fuction of U/D and dop

def surf_z(data, name):
    """Surface plot of the quasiparticle weight as fuction of U/D and dop"""
    from mpl_toolkits.mplot3d import Axes3D
    from matplotlib import cm
    from matplotlib.ticker import LinearLocator, FormatStrFormatter

    fig = plt.figure()
    ax = fig.gca(projection='3d')

    dop, u_int = np.meshgrid(data['doping'], data['u_int'])
    zmes = pick_flat_z(data)
    ax.plot_surface(u_int, dop, zmes.T, rstride=1, cstride=1, cmap=cm.coolwarm,
            linewidth=0, antialiased=False)
    ax.contourf(u_int, dop, zmes.T, zdir='z', offset=0, cmap=cm.coolwarm)

    ax.set_zlim(0, 1)
    ax.view_init(elev=11, azim=-34)


    ax.zaxis.set_major_locator(LinearLocator(10))
    ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))

    ax.set_xlabel('$U/D$', fontsize=20)
    ax.set_ylabel('$n$', fontsize=20)
    ax.set_zlabel('$Z$', fontsize=20)

    plt.savefig(name+'_surf.png', dpi=300, format='png',
            transparent=False, bbox_inches='tight', pad_inches=0.05)