假设我有
x
、y
、z
和 x2
、y2
、z2
数组。我在 pyvista 中将它们绘制为 2 个不同的 3d 样条线。
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)
该图的问题是一个轴过于压缩:
y
轴值约为 300,而x
轴范围为 0 到 20。看来该图对所有轴使用相同的比例。另外,x
和y
的数量不同,所以我不想比较它们。
例如,Matplotlib
自动缩放轴并在 y
和 x
轴上使用相同的比例 ax.set_aspect("equalxy")
。
在这种情况下,轴已经缩放,我想让它使用不同的尺寸。我怎样才能做到这一点?
PyVista 在物理笛卡尔空间中绘图,因此您需要使用
pl.set_scale()
在场景上设置比例,请参阅文档:https://docs.pyvista.org/version/stable/api/plotting/_autosummary/pyvista。 Plotter.set_scale.html#pyvista.Plotter.set_scale