用python的matplotlib画等高线

用python的matplotlib画等高线

对离散数据画等高线,填充颜色,并显示颜色条

  • 生成网格,然后通过插值填充数据
  • 对插值后的数据画等高线
  • 根据最大值和最小值画colorbar

画等高线

# 产生网格,temp_data是n*3维的矩阵,temp_data[:,0]是x坐标,temp_data[:,1]是y坐标,# temp_data[:,2]是(x,y)位置上的温度
grid_x,grid_y=np.mgrid[np.min(temp_data[:,0]):np.max(temp_data[:,0]):5,np.min(temp_data[:,1]):np.max(temp_data[:,1]):5]
# 坐标数据
points = temp_data[:,0:2]
# 温度数据
z = temp_data[:,2]
# 在网格上线性插值,即温度值。边缘可能会是nan,因为边缘无法线性插值,可以用邻近插值nearest
grid_z = griddata(points, z, (grid_x, grid_y), method='linear')
fig = plt.figure()
# contourf对等高线间填充颜色,颜色是cmap。还有contour是画等高线,不填充
cs = plt.contourf(grid_x, grid_y ,grid_z, 15, alpha = 0.75, cmap = plt.cm.jet)
# 画colorbar
plt.colorbar()
plt.show()

单独画colorbar

fig = plt.figure()
# 指定colorbar显示在图像的哪一块区域
ax = fig.add_axes([0.83, 0.22, 0.03, 0.65])
# colorbar的颜色
cmap = plt.cm.jet
# colorbar的刻度,从最小值到最大值
norm = mpl.colors.Normalize(vmin = np.min(grid_z), vmax = np.max(grid_z))
# 可以设置颜色,刻度,刻度的方向等
cb = mpl.colorbar.ColorbarBase(ax, cmap = cmap, norm = norm, orientation = 'vertical')
plt.show()

colorbar

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值