pgfplot:自定义轴宽科学计数法乘数

pgfplot:自定义轴宽科学计数法乘数

大家好,我在使用刻度标签格式时遇到了两个问题。首先,如果我明确设置scaled y ticks = true,十进制符号仍然会出现在每个刻度上。

图表如下:

问题少年

以下是该图片所用的代码:

\begin{tikzpicture}

\begin{axis}[%
scaled y ticks = true,
width=4.52083in,
height=3.56562in,
xmin=0, xmax=0.01,
ymin=-0.0025, ymax=0,
xlabel={Time t [s]},
ylabel={TopNode Displacement [m]},
xmajorgrids,
ymajorgrids,
zmajorgrids,
legend entries={$D=0$},
legend style={nodes=right},
scaled x ticks = true,
x tick label style={
rotate=90,anchor=east,},
y tick label style={/pgf/number format/.cd,sci,precision=5}]
\addplot [
color=green,
solid,
line width=1.0pt
]
coordinates{
(0,0)(9.9173e-005,-3.01301e-005)(0.000199171,-0.000141203)(0.000299992,-0.000335604)
 ....
(0.0997007,-0.0021914)(0.0998004,-0.00218975)(0.099901,-0.00218216)(0.    
100001,-0.00216898) 
};

\end{axis}
\end{tikzpicture}

我忽略了大部分坐标信息,否则这篇文章将会有 100 行长。

如果要解决这个问题,我的第二个问题是是否有办法将轴乘数的指数设置为特定值,例如从 10^-3 到 10^-2?

答案1

我认为

scaled ticks=base 10:3

或类似操作将解决这两个问题。您可以单独执行scaled x ticksscaled y ticks,冒号后面的数字是您要分解的公共指数。

(请注意,这与您当前的不兼容y tick label style,因此您需要先将其删除才能正常工作。)

答案2

是的!scaled ticks=base 10:3做到了!但我必须删除那行y tick label style={/pgf/number format/.cd,sci,precision=5}

工作代码如下:

\begin{tikzpicture}

\begin{axis}[
scaled ticks=base 10:3,
width=4.52083in,
height=3.56562in,
xmin=0, xmax=0.01,
ymin=-0.0025, ymax=0,
xlabel={Time t [s]},
ylabel={TopNode Displacement [m]},
xmajorgrids,
ymajorgrids,
zmajorgrids,
legend entries={$D=0$},
legend style={nodes=right},]
\addplot [
color=green,
solid,
line width=1.0pt
]
coordinates{
...
};

\end{axis}
\end{tikzpicture}

太感谢了。

相关内容