#!/usr/bin/python
#---coding=utf-8
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = Axes3D(fig)
#X Y value
X = np.arange(-4,4,0.25) # X -4 - 4 的 -32个点
Y = np.arange(-4,4,0.25) # Y -4 - 4 的 -32个点
X,Y = np.meshgrid(X,Y)     # 生成32X32网络 ?
R = np.sqrt(X**2 + Y**2)    # 算出32X32 的矩阵 数值为 X**2+Y**2
#hight value    
Z = np.sin(R)                            # 高程数据

#伪3D显示
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.get_cmap('rainbow'))
"""
============= ================================================
        Argument      Description
        ============= ================================================
        *X*, *Y*, *Z* Data values as 2D arrays
        *rstride*     Array row stride (step size), defaults to 10
        *cstride*     Array column stride (step size), defaults to 10
        *color*       Color of the surface patches
        *cmap*        A colormap for the surface patches.
        *facecolors*  Face colors for the individual patches
        *norm*        An instance of Normalize to map values to colors
        *vmin*        Minimum value to map
        *vmax*        Maximum value to map
        *shade*       Whether to shade the facecolors
        ============= ================================================
"""

# I think this is different from plt12_contours
#平面投影
ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap=plt.get_cmap('rainbow'))
"""
==========  ================================================
        Argument    Description
        ==========  ================================================
        *X*, *Y*,   Data values as numpy.arrays
        *Z*
        *zdir*      The direction to use: x, y or z (default)
        *offset*    If specified plot a projection of the filled contour
                    on this position in plane normal to zdir
        ==========  ================================================
"""
ax.set_zlim(-2, 2) # Z坐标范围为 -2 -2
plt.show()


"""
坑---- 此文件为网络抄回,运行没问题,但改了下从文件中读取出来的所谓数字其实是string ,必须转换成float :
            f_arr=f_line.replace("\n","").split(":") # 干掉换行符以冒号分割各元组
            arr.append(f_arr[0])                                    # 第一列为字符串,直接append
            t_time=map(float,f_arr[1:])                    # 后面各列需由字符串类型转为浮点数
            arr.extend(t_time)                                # 整理后各列归队
            arr_all.append(arr)                                    # 加入到准备转矩阵的数组中

"""
09-03 23:34