我使用Plot3D命令绘制了一个3-D图。根据参数值的不同,绘图会显示非常大的数字(例如,3000或100000)。所以,我的z轴看起来很奇怪,因为它也占据了很大的空间。我想用科学的指数格式来写它们,比如说,3*10^3或10^5。
我还看到,只有当数字有七位或更多位时,Mathematica才会自动将大数字转换为科学格式。有没有人可以帮我,让我用上面提到的科学格式写任何数字?
发布于 2014-02-17 18:30:57
您可以像这样为z-ticks定义一个函数:-
ticks[min_, max_, n_] := Transpose[Function[z, {z, Function[x,
ScientificForm[N@x]] /@ z}]@FindDivisions[{min, max}, n]]
m = 456;
Plot3D[{x^2 + y^2, -x^2 - y^2}, {x, -m, m}, {y, -m, m}, BoxRatios -> {1, 1, 1},
Ticks -> {Automatic, Automatic, ticks[#1, #2, 5] &}]

编辑
以下代码可用于省略z轴刻度的有效位中的小数点:-
ticks[min_, max_, n_] := Transpose[Function[z, {z, Function[x,
ScientificForm[N@x /. (0. -> 0), NumberPoint -> If[IntegerQ[x] &&
Union[Rest@IntegerDigits@x] == {0}, "", "."]]] /@ z}]@
FindDivisions[{min, max}, n]]https://stackoverflow.com/questions/21823706
复制相似问题