pyqtgraph:GLSurfacePlotItem如何在三维地形表面自定义颜色分布(读取图片给三维平面分区域着色)

本文探讨了如何在Pyqtgraph的GLSurfacePlotItem上使用matplotlib的terrain颜色分布,并尝试通过传入自定义地貌图片实现按区域着色。解决了color_list的限制,最终通过修改glColorPointer类型解决了颜色划分问题,但颜色显示仍有待优化。

一、关于pyqtgraph

  来找这个问题的朋友想必是在使用pyqtgraph,并且知道怎样用GLSurfacePlotItem部件绘图的基本操作了。这是一个使用OpenGL加速3D绘图的Python工具包,除了三维数据的可视化之外,同样也可以用于2D数据可视化与数据实时更新展示,启用GPU加速其效率可想而知,相关功能在这里不再赘述。
  由于课题研究需要,本人在绘制三维高程图的过程中,不想按照不同高度来区分三维地形颜色,而是按照不同地貌划分颜色区域,花了很长时间去查资料都没有找到相关内容,有的只是自定义颜色区间,同样全网又是千篇一律的无用答案,本文只要记录开发过程的解决按区域划分pyqtgraph:GLSurfacePlotItem部件的平面图着色问题,并且尚有未解决的缺陷,望大神不吝赐教,其他问题请移步 官方说明文档.。

二、本文要实现的功能

1.默认效果

  在读取高程数据,得到元素值为地形高度的二维矩阵ele(此处以ele.shape=(200,200)为例)后,使用

import pyqtgraph.opengl as gl
p = gl.GLSurfacePlotItem(z=ele, shader='shaded')	# shaded效果是取消了反光,没有这个参数值生成的平面亮度很高

得到的可视化效果为:
默认效果图

图1

2.使用matplotlib自带的terrain地形颜色

  如果在GLSurfacePlotItem中使用matplotlib自带的地形颜色分布(‘terrain’)

import pyqtgraph.opengl as gl
from mat
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值