Mathematica:是否有可能将AxesLabel放在轴的末端,就像2D一样?

时间:2011-05-31 03:16:35

标签: wolfram-mathematica

根据

http://reference.wolfram.com/mathematica/ref/AxesLabel.html

它说

“默认情况下,二维图形中的轴标签位于轴的末端。在三维图形中,它们与轴的中间对齐。”

我想将轴标签放在轴的末端也用于我的3D绘图,因为这样我就可以很容易地看到哪些轴现在在旋转时哪些轴在3D对象上。

我无法找到一个技巧。这是一个例子

g=Graphics3D[
{
  Cuboid[{-.1,-.1,-.1},{.1,.1,.1}],
         {Red,PointSize[.03],Point[{3,0,0}]},
         {Black,PointSize[.03],Point[{0,3,0}]},
         {Blue,PointSize[.03],Point[{0,0,3}]}
         },
         AxesOrigin->{0,0,0},
         PlotRange->{{-3,3},{-3,3},{-3,3}},
         Axes->True,
         AxesLabel->{"X","Y","Z"},
         LabelStyle->Directive[Bold,Red,16],
         PreserveImageOptions->False,
         Ticks->None,
         Boxed->False
  ]

此外,它表示3D的轴标签应该位于轴的“中间”。

但是看看生成的Graphics3D,我觉得标签根本不在中间。可能是一个缩放的东西,现在不确定,但看起来标签太靠近原点了。

感谢,

1 个答案:

答案 0 :(得分:3)

您可以在您选择的位置手动绘制标签:

Graphics3D[
  { Cuboid[{-.1,-.1,-.1},{.1,.1,.1}]
  , Text[Style["X", Bold, Red, 16], {3, 0, 0}]
  , Text[Style["Y", Bold, Black, 16], {0, 3, 0}]
  , Text[Style["Z", Bold, Blue, 16], {0, 0, 3}]
  }
, AxesOrigin -> {0, 0, 0}
, PlotRange -> {{-3, 3}, {-3, 3}, {-3, 3}}
, Axes -> True
, PreserveImageOptions -> False
, Ticks -> None
, Boxed -> False
]
axis labels