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

3d 在MATHEMATICA中将大数字(如3000或100000)转换为科学格式(如10^3或3*10^5),3d,wolfram-mathematica,scientific-notation,3d,Wolfram Mathematica,Scientific Notation,我已使用Plot3D命令绘制了三维绘图。根据参数值,绘图显示非常大的数字(例如,3000或100000)。所以,我的z轴看起来很奇怪,因为它也有很大的空间。我想用科学指数格式写,比如说,3*10^3或10^5 我还看到Mathematica仅当数字有七位数以上时才会自动将大数字转换为科学格式。有人能帮我用上述科学格式写出任何数字吗?你可以为z记号定义一个函数,如下所示:- ticks[min_, max_, n_] := Transpose[Function[z, {z, Function[x,

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


我还看到Mathematica仅当数字有七位数以上时才会自动将大数字转换为科学格式。有人能帮我用上述科学格式写出任何数字吗?

你可以为z记号定义一个函数,如下所示:-

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]]

通常紧急或请尽早回复不是结束问题的好方法。这里的每个人都在自己的意愿和时间里提供帮助。非常感谢您的回复。这对我有用。只有一件事是如何删除z轴数字中的点标记(例如,2.*10^5)。如何去除图中的点标记?请回复。你好,萨米特。非常感谢。让我给你一部分代码:c0=-0.3;k=1.0;g=1.2;n=(k-g)/(k+g)^3;w3=(2*n+2*5^(1/2)*n)^(1/2)-(2*n+2*5^(1/2)*n)^(3/2)/(4*n);w4=(2*n+2*5^(1/2)*n^(1/2);lr=Sqrt[w4^2/2];z=([Xi]-c0*t)/[Sqrt](1-c0*c0);d=(k-g)/(k+g);k00=-w3/w4;c1=k00/w4;u2=(1+c0)*d*(某些函数);现在,问题是,在c0=-0.46时,它工作正常,但当c0=-0.5时,z轴上的数字重叠,使得z轴笨拙。如何为任何c0获得整齐的z轴?谢谢,萨米特。正在等待答复。对不起,现在可以了。非常感谢Chris Degnen。你为我做得很好。上帝保佑!