我之前在 Stack Overflow 上看到过这个问题,但不知为何答案对我不起作用。你能帮我制作一个使用非科学记数法数字的折线图吗?
这是我的代码:
\pgfplotsset{timeAcc/.style={
xmin=1,
xmax=100,
ymin=0,
ymax=100,
scaled ticks=false,
y tick label style={/pgf/number format/fixed},
ytick={0,10,20,30,40,50,60,70,80,90,100},
xlabel={Window Size (ms)},
ylabel={Accuracy (\%)},
grid=major,
}}
\begin{tikzpicture}
\begin{loglogaxis} [
timeAcc,
title=Example Model,
legend entries={Total accuracy, GMR, Usage},
]
\addplot table [col sep=comma] {data.csv};
\addplot table [y=c, col sep=comma] {data.csv};
\addplot table [y=d, col sep=comma] {data.csv};
\end{loglogaxis}
\end{tikzpicture}
所以我使用scaled ticks=false
和format/fixed
,但我的输出如下所示:
为什么 pgfplots 忽略了 tick 命令,我该如何改变这种情况?
答案1
tick label style={/pgf/number format/fixed}
使用 时不起作用loglogaxis
。您必须使用log ticks with fixed point
(归功于 percusse)。
此外,如果您只希望一个轴采用对数格式,则可以将图表设置为semilogaxis
,这样其中一个轴采用对数刻度,另一个轴采用线性刻度。在这种情况下,这将是semilogxaxis
,并且看起来像这样:
\pgfplotsset{timeAcc/.style={
xmin=1,
xmax=100,
ymin=0,
ymax=100,
scaled ticks=false,
y tick label style={/pgf/number format/fixed},
log ticks with fixed point,
ytick={0,10,20,30,40,50,60,70,80,90,100},
xlabel={Window Size (ms)},
ylabel={Accuracy (\%)},
grid=major,
}}
\begin{tikzpicture}
\begin{semilogxaxis} [
timeAcc,
title=Example Model,
legend entries={Total accuracy, GMR, Usage},
]
\addplot table [col sep=comma] {data.csv};
\addplot table [y=c, col sep=comma] {data.csv};
\addplot table [y=d, col sep=comma] {data.csv};
\end{semilogxaxis}
\end{tikzpicture}