You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyVista多窗口绘制3D体数据切片时出现色阶共享异常问题

问题原因

PyVista 同一 Plotter 实例默认全局共享标量色阶范围,当多个子图的网格值值域差异较大时,值域较小的子图会因为色阶范围被拉大出现显示异常。

解决方案

调用 add_mesh() 方法时,单独为每个网格指定 clim 参数为当前网格的标量值域即可,需要单独显示每个子图的色条时可搭配 scalar_bar_args 参数配置。

修改后的可运行代码如下:

import numpy as np
import pyvista as pv

Nx, Ny, Nz  = 100, 100, 200

plotter    = pv.Plotter(shape=(1,2))

plotter.subplot(0,0)
vol1    = pv.wrap( np.random.randint(10, size=(Nx,Ny,Nz)) )
slic1   = vol1.slice_orthogonal()
# 单独指定当前子图网格的色阶范围
plotter.add_mesh(slic1, clim=[slic1.active_scalars.min(), slic1.active_scalars.max()])

plotter.subplot(0,1)
vol2    = pv.wrap( np.random.randint(100, size=(Nx,Ny,Nz)) )
slic2   = vol2.slice_orthogonal()
# 单独指定当前子图网格的色阶范围
plotter.add_mesh(slic2, clim=[slic2.active_scalars.min(), slic2.active_scalars.max()])

plotter.show()

如果需要每个子图单独展示色条,可在add_mesh参数中添加scalar_bar_args配置,示例:
plotter.add_mesh(slic1, clim=[slic1.active_scalars.min(), slic1.active_scalars.max()], scalar_bar_args={'title': '子图1数值'})


内容的提问来源于stack exchange,提问作者Alf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 12:45:10