- 我想补充一下
extra y ticks
。 - 我还想
extra tick labels
通过使用来手动定义extra y tick labels
。 - 对于正常情况
yticklabels
我可以使用yticklabels = {{$25,0$},{$30,0$}}
。 - 当我对使用相同的语法时,
extra y tick labels
出现错误:! Extra }, or forgotten $.
。 - 如果我不使用美元符号(
$
例如extra y tick labels = {{27,0}}
),就不会发生这种情况。 - 在我的实际用例中,我需要美元符号。
- 不重要:在我的国家(德国)小数分隔符是个逗号。
\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pgfplotsset{myDefaultStyle/.style =
{
width = 160mm,
height = 90mm,
axis x line = bottom,
axis y line = left,
ylabel = y Label,
xlabel = x Label,
grid = major,
}}
\begin{document}
% ######### Plot #########
% ########################
\begin{tikzpicture}
\begin{axis}[
myDefaultStyle,
xmin = 0,
xmax = 32,
ymin = 24.5,
ymax = 30.1,
xtick = {0,10,20,30},
%% Works Fine
ytick = {25,30},
yticklabels = {{$25,0$},{$30,0$}},
%% Does not Work Fine
% extra y ticks={27},
% extra y tick labels = {{$27,0$}},
]
% Plots
\addplot[domain=0:10,red]{x};
%
\end{axis}
\end{tikzpicture}
\end{document}
答案1
大括号必须位于内联数学内。因此,您可以使用
extra y tick labels = {${27,0}$}
或者
extra y tick labels = {$27{,}0$}
我更喜欢第二个,因为逗号后的(不需要的)空格也被删除了。
\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pgfplotsset{myDefaultStyle/.style =
{
width = 160mm,
height = 90mm,
axis x line = bottom,
axis y line = left,
ylabel = y Label,
xlabel = x Label,
grid = major,
}}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
myDefaultStyle,
xmin = 0,
xmax = 32,
ymin = 24.5,
ymax = 30.1,
xtick = {0,10,20,30},
%% Works Fine
ytick = {25,30},
yticklabels = {$25{,}0$,$30{,}0$},
%% Works too
extra y ticks={27},
extra y tick labels = {$27{,}0$},
]
% Plots
\addplot[domain=0:10,red]{x};
%
\end{axis}
\end{tikzpicture}
\end{document}
结果是
我不知道你真正想做什么。但也许使用\pgfmathprintnumber
也可能是一种选择:
yticklabel={\pgfmathprintnumber[fixed,fixed zerofill,precision=1,use comma]{\tick}}
例子:
\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pgfplotsset{myDefaultStyle/.style =
{
width = 160mm,
height = 90mm,
axis x line = bottom,
axis y line = left,
ylabel = y Label,
xlabel = x Label,
grid = major,
}}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
myDefaultStyle,
xmin = 0,
xmax = 32,
ymin = 24.5,
ymax = 30.1,
xtick = {0,10,20,30},
yticklabel={\pgfmathprintnumber[fixed,fixed zerofill,precision=1,use comma]{\tick}},
ytick = {25,30},
extra y ticks={27}
]
% Plots
\addplot[domain=0:10,red]{x};
%
\end{axis}
\end{tikzpicture}
\end{document}
结果和上面一样。