大家好,我在使用刻度标签格式时遇到了两个问题。首先,如果我明确设置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 ticks
或scaled 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}
太感谢了。