У меня есть следующий график
и мне нужно выписать десятичные числа на тиковой оси y, а также поверх столбцов. Я нашел здесь несколько других вопросов, в которых говорилось об использовании y tick label style={/pgf/number format/fixed}
, что абсолютно ничего не дало мне, и scaled ticks=false
, что вроде как сработало для оси, но также сделало некоторые странные вещи и не сработало для столбцов.
Есть ли надежный способ просто полностью выписать числа (0,0051 и 0,018) на оси И в узлах?
мвд:
\documentclass{article}
\usepackage[dvipsnames]{xcolor} %
\usepackage{pgfplots} %
\begin{document}
\begin{tikzpicture}
\pgfplotsset{width=9 cm, height=9cm}
\begin{axis} [
symbolic x coords={0, last year, this year},
xtick={last year, this year},
% scaled ticks=false,
axis lines*=left,
ymajorgrids = true, %shows the y grid
ymin=0,
% y tick label style={/pgf/number format/fixed},
bar width=12.5mm,
ybar=-1cm,
enlarge x limits={abs=2.33cm},
nodes near coords,
every node near coord/.append style={color=black},
]
\addplot [Red,fill=Red]
coordinates{ (last year,0.0051) (this year,0.018) } ;
\end{axis}
\end{tikzpicture}
\end{document}
Спасибо
решение1
Чтобы задать числовой формат для осей и полос, мы можем использовать
\pgfkeys{/pgf/number format/fixed,/pgf/number format/precision=4}
Код
\documentclass{article}
\usepackage[dvipsnames]{xcolor} %
\usepackage{pgfplots} %
\pgfplotsset{compat=1.18}%<-- added
\begin{document}
\begin{tikzpicture}
\pgfplotsset{width=9 cm, height=9cm}
\pgfkeys{
/pgf/number format/fixed,
/pgf/number format/precision=4,
}%<-- this line
\begin{axis} [
symbolic x coords={0, last year, this year},
xtick={last year, this year},
scaled ticks=false,
axis lines*=left,
ymajorgrids = true, %shows the y grid
ymin=0,
% y tick label style={/pgf/number format/fixed,/pgf/number format/precision=4},
bar width=12.5mm,
ybar=-1cm,
enlarge x limits={abs=2.33cm},
nodes near coords,
every node near coord/.append style={color=black},
]
\addplot [Red,fill=Red]
coordinates{ (last year,0.0051) (this year,0.018) } ;
\end{axis}
\end{tikzpicture}
\end{document}