在MATHEMATICA中将BIG数字(例如,3000或100000)转换为科学格式(例如,10 ^ 3或3 * 10 ^ 5)

时间:2014-02-17 08:04:07

标签: 3d wolfram-mathematica scientific-notation

我使用Plot3D命令绘制了一个三维图。根据参数值,图表显示非常大的数字(例如,3000或100000)。所以,我的z轴看起来非常奇怪,因为它也会占据大空间。我想用科学指数格式写出它们,比如3 * 10 ^ 3或10 ^ 5。

我还看到Mathematica仅在数字有七位以上的数字时自动将BIG号码转换为科学格式。任何人都可以提供帮助,以便我可以用上述科学格式编写任何数字吗?

1 个答案:

答案 0 :(得分:2)

您可以为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] &}]

enter image description here

修改

以下内容可用于省略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]]