如何在pyvista中独立缩放轴?

How to scale axes independently in pyvista?

提问人:roschach 提问时间:9/19/2023 最后编辑:roschach 更新时间:9/29/2023 访问量:141

问:

假设我有 、 和 、 数组。我在 pyvista 中将它们绘制为 2 个不同的 3d 样条曲线。xyzx2y2z2

import numpy as np
import pyvista as pv

network = pv.MultiBlock()

points_1 = np.column_stack((x, y, z))
spline_1 = pv.Spline(points_1, 500).tube(radius=0.1)

points_2 = np.column_stack((x2, y2, z2))
spline_2 = pv.Spline(points_2, 500).tube(radius=0.1)

network.append(spline_1)
network.append(spline_2)

p = pv.Plotter()
labels = dict(zlabel='l1', xlabel='l2', ylabel='l2')
p.show_grid(**labels)
p.add_axes(**labels)
p.add_mesh(spline_1, color="red", line_width=3)
p.add_mesh(spline_2, color="blue", line_width=3)

此图的问题在于一个轴过于压缩:轴值约为 300,而轴范围为 0 到 20。似乎该图对所有轴都使用相同的比例。此外,和的数量不同,所以我不想比较它们。yxxy

Matplotlib例如,自动缩放轴,并在 和 轴上使用相同的缩放比例。yxax.set_aspect("equalxy")

在这种情况下,轴已经缩放,我想让一个轴使用不同的大小。我该怎么做?

Python 3D 比例 PyVista

评论


答:

0赞 Bane Sullivan 12/3/2023 #1

PyVista 在物理参数空间中绘图,因此您需要使用 See docs: https://docs.pyvista.org/version/stable/api/plotting/_autosummary/pyvista.Plotter.set_scale.html#pyvista.Plotter.set_scale 在场景中设置比例pl.set_scale()