在数据可视化实践过程中经常需要对三维甚至更高纬度数据进行可视化。由于视线阻挡,人们在看三维物体时并不能观测清楚完全。有时候需要获取三维图形的某个截面来单独分析数据。
# -*- coding: utf-8 -*-
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib as mpl
from scipy import interpolate
import matplotlib.cm as cm
import matplotlib.pyplot as plt
xmin=-10
ymin=-10
xmax=10
ymax=10
rawStrideNum=50#原始数据x,y的分段数
InterpolationNum=100#使用插值方法获取某个截面数据 获取数据时将数据分割的分段数
#生成原始数据的f value
def fm((x, y)):
return (np.sin(x) + 0.05 * x ** 2+ np.sin(y) + 0.05 * y ** 2)
#原始数据获取
x = np.linspace(xmin, xmax, rawStrideNum)
y = np.linspace(ymin,ymax,rawStrideNum)
X, Y = np.meshgrid(x, y)#50*50的网格数据
Z = fm((X, Y))
#开始作图
fig = plt.figure(figsize=(9, 6))
#Draw sub-gr