pyqtgraph:GLSurfacePlotItem如何在3D高度图上自定义颜色分布(读取图片给三维平面分区域着色)
一、关于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效果是取消了反光,没有这个参数值生成的平面亮度很高
得到的可视化效果为:

2.使用matplotlib自带的terrain地形颜色
如果在GLSurfacePlotItem中使用matplotlib自带的地形颜色分布(‘terrain’)
import pyqtgraph.opengl as gl
from mat

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





