PyVista绘图仪无法为多个子图生成背景图像

问题描述

我正在尝试使用 pyvista.Plotter() 在 Python 中渲染网格,同时尝试在渲染的网格旁边显示图像。代码目前的形式为

import pyvista as pv
from pyvista import examples

filenames = (['filename1.jpg','filename2.jpg','filename3.jpg',])
mesh = pv.polyData('meshfile.ply')
p = pv.Plotter(shape='1|3')
p.subplot(0)
p.add_mesh(mesh)
t=1
for i in filenames:
    p.subplot(t)
    p.add_background_image(i)
    #p.add_mesh(examples.load_airplane(),show_edges=False)
    t +=1

我认为 Plotter.add_background_image() 是使用 PyVista 绘制图像的最便捷方式。 for 循环中注释掉的行实际上产生了正确的排列,但我希望较小的图具有背景图像而不是另一个网格。然而,实际上只显示了最终的图像文件,它是 p.subplot(0) 的背景图像,不应该有背景图像。是否有更方便的方式在 pyvista 3d 渲染窗口旁边显示图像?

解决方法

看着the documentation of Plotter.add_background_image()

add_background_image(image_path,scale=1,auto_resize=True,as_global=True)

as_global (bool,optional) – 当存在多个渲染窗口时,设置 as_global=False 将导致背景只出现在一个窗口中。

所以你可能只需要调用这个方法

    p.add_background_image(i,as_global=False)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...