在Matlab三维网格图中使坐标轴经过原点



我正在Matlab中使用以下代码绘制球体:

phi=linspace(0,pi,30);
theta=linspace(0,2*pi,30);
[phi,theta]=meshgrid(phi,theta);
x=sin(phi).*cos(theta);
y=sin(phi).*sin(theta);
z=cos(phi);
figure('Units', 'pixels', ...
 'Position', [200 200 433 433]);
colormap(copper)
mesh(x,y,z,'LineWidth',1.5)
xlabel('k_x','interpreter','tex');
ylabel('k_y','interpreter','tex');
zlabel('k_z','interpreter','tex');
set(gca,...
  'xtick'       , []        , ...
  'ytick'       , []        , ...
  'ztick'       , []        , ... 
  'LineWidth'   , 1.5         );
set(gcf,...
  'Color','w',...
  'PaperPositionMode', 'auto');

正如您所看到的,这只是在白色背景上绘制球体,没有刻度,但有x, y和z轴。

现在,我想让这些轴穿过球体的原点。也就是说,我想让坐标轴经过(0,0,0)而不是像现在这样,在盒子的边缘上。另外,我想让标签位于轴的正端,如果可能的话?最后再画个箭头怎么样?…但这不是我的主要问题。

感觉就像为了这个简单的问题找遍了整个网络…

如果您正在使用Matlab R2014a或任何其他早期版本,这里已经有一个易于使用的工具由John Barber实现:

相关内容

  • 没有找到相关文章

最新更新