【问题标题】:Make axes go through origin in Matlab 3D mesh plot在 Matlab 3D 网格图中使轴穿过原点
【发布时间】:2015-08-14 03:10:15
【问题描述】:

我正在使用以下代码在 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 axis mesh axes


    【解决方案1】:

    如果您使用的是 Matlab R2014a 或其任何其他早期版本,Here 已经有一个由 John Barber 提供的易于使用的工具用于此类实现:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-29
      • 2018-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多