python绘制三维图、等高线图

数据

数据

1.三维图

1.1python程序

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import griddata

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

data=pd.read_excel('数据.xls',sheet_name='附件1',usecols=['x(m)','y(m)','海拔(m)'],header=2)
x=data.iloc[:,0]
y=data.iloc[:,1]
z=data.iloc[:,2]
xi=np.linspace(min(x),max(x))
yi=np.linspace(min(y),max(y))
xi,yi=np.meshgrid(xi,yi)
zi=griddata(data.iloc[:,0:2],z,(xi,yi),method='cubic')

fig=plt.figure()
ax=fig.gca(projection='3d')
surf=ax.plot_surface(xi,yi,zi,cmap='BuPu',linewidth=0,antialiased=False)
fig.colorbar(surf)
ax.set_title('三维图')
plt.show()

1.2效果

三维图

2.等高线图

2.1python程序

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import griddata

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

data=pd.read_excel('数据2.xls',sheet_name='附件1',usecols=['x(m)','y(m)','海拔(m)'],header=2)
x=data.iloc[:,0]
y=data.iloc[:,1]
z=data.iloc[:,2]
xi=np.linspace(min(x),max(x))
yi=np.linspace(min(y),max(y))
xi,yi=np.meshgrid(xi,yi)
zi=griddata(data.iloc[:,0:2],z,(xi,yi),method='cubic')
levels=np.linspace(np.min(z),np.max(z),30)

fig,ax=plt.subplots(figsize=(8,6))
cs=ax.contour(xi,yi,zi,levels=levels)
ax.clabel(cs,inline=True,fontsize=6)
ax.set_title('等高线图')
plt.show()

2.2效果

等高线图

猜你喜欢

转载自blog.csdn.net/m0_67790374/article/details/127320512
今日推荐