Python 如何将坐标系移动到3D mayavi.mlab场景的中心?

Python 如何将坐标系移动到3D mayavi.mlab场景的中心?,python,mayavi,mayavi.mlab,Python,Mayavi,Mayavi.mlab,我做了一些图像处理,为此,我想使用mayavi.mlab可视化我的数据(我有一个三维单位向量的分布)。但是,我希望在单位球体的曲面上显示数据。使用mlab.axes,我得到了一个笛卡尔坐标系,很好。但是我想把这个坐标系移到球体的中心。我该怎么做 我已经有了球体、球体上的网格、我的数据(未在提供的代码片段中显示)、颜色条等等。我还尝试使用mlab.plot3d自己构建坐标系,然后绘制了3条线。当然,这些行的末尾没有标签、记号或箭头 import numpy as np from mayavi im

我做了一些图像处理,为此,我想使用mayavi.mlab可视化我的数据(我有一个三维单位向量的分布)。但是,我希望在单位球体的曲面上显示数据。使用mlab.axes,我得到了一个笛卡尔坐标系,很好。但是我想把这个坐标系移到球体的中心。我该怎么做

我已经有了球体、球体上的网格、我的数据(未在提供的代码片段中显示)、颜色条等等。我还尝试使用mlab.plot3d自己构建坐标系,然后绘制了3条线。当然,这些行的末尾没有标签、记号或箭头

import numpy as np
from mayavi import mlab

## Create a sphere
r = 1.0
pi = np.pi
cos = np.cos
sin = np.sin
phi, theta = np.mgrid[-0.5*pi:0.5*pi:101j, 0:1*pi:101j]

## Polarcoordinates of the sphere
x = r*sin(phi)*cos(theta)
y = r*sin(phi)*sin(theta)
z = r*cos(phi)

## Basic settings mlab
mlab.figure(1, bgcolor=(1, 1, 1), fgcolor=(0, 0, 0), size=(500, 500))
mlab.clf()

## Plot unit sphere
mlab.mesh(x , y , z, color=(0.9,0.,0.), opacity=0.3)

## My approach for the centered coordinate system
ax=[[0,0.5,1,1.5],[0,0,0,0]]
x_ax_x=ax[0]
x_ax_y=ax[1]
x_ax_z=ax[1]

y_ax_x=ax[1]
y_ax_y=ax[0]
y_ax_z=ax[1]

z_ax_x=ax[1]
z_ax_y=ax[1]
z_ax_z=ax[0]

mlab.plot3d(x_ax_x, x_ax_y, x_ax_z, tube_radius=None, color=(0,0,0))
mlab.plot3d(y_ax_x, y_ax_y, y_ax_z, tube_radius=None, color=(0,0,0))
mlab.plot3d(z_ax_x, z_ax_y, z_ax_z, tube_radius=None, color=(0,0,0))

mlab.show()
有没有一个简单的方法来获得一个中心坐标系,或者我必须自己建立它?如果是这样的话,我如何在线条上添加箭头、标签和记号

提前谢谢


Phtagen

Mayavi中没有满足您要求的功能。有人对笛卡尔坐标系的轴也有类似的问题,最后自己画出来感谢你的回答并分享链接。。。我还以类似的方式自己管理轴绘图…Mayavi中没有满足您要求的功能。有人对笛卡尔坐标系的轴也有类似的问题,最后自己画出来感谢你的回答并分享链接。。。我还以类似的方式自己管理轴图。。。