我有一张如下所示的 pgfplots 图表。
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ybar,
bar width=1.5cm,
x=3cm,
enlarge x limits={abs=1.5cm},
enlarge y limits=false,
ymin=0,
nodes near coords,
xtick=data,
ylabel=Returns,
symbolic x coords={Then, Now},
axis lines*=left,
clip=false
]
\addplot coordinates {(Then,3) (Now,9)};
\end{axis}
\end{tikzpicture}
\end{document}
我想在其中添加红色部分,即从一个条形图到下一个条形图的箭头,并附上标签。此图片并非严格要求,标签如果不是自动生成或放置在箭头上的其他地方,则完全没问题。
答案1
如果您想轻松准确地放置箭头,只需添加一种方法。您可以将 放在环境\draw
内部axis
,并使用axis cs
和[normalized]
位置作为符号坐标,其中[normalized]0
是坐标Then
,[normalized]1
是坐标。然后,您可以根据需要和条形宽度使用和Now
移动这些坐标。xshift
yshift
以下是一个例子:
\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ybar,
bar width=1.5cm,
x=3cm,
enlarge x limits={abs=1.5cm},
enlarge y limits=false,
ymin=0,
nodes near coords,
xtick=data,
ylabel=Returns,
symbolic x coords={Then, Now},
axis lines*=left,
clip=false
]
\addplot coordinates {(Then,3) (Now,9)};
\draw[->,red,thick] ([xshift=0.75cm]axis cs:{[normalized]0},3) -- ([xshift=-0.75cm]axis cs:{[normalized]1},9) node[above,midway,sloped] {+200\%};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
作为一种快速破解方法,您可以手动添加箭头(根据需要调整坐标):
\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ybar,
bar width=1.5cm,
x=3cm,
enlarge x limits={abs=1.5cm},
enlarge y limits=false,
ymin=0,
nodes near coords,
xtick=data,
ylabel=Returns,
symbolic x coords={Then, Now},
axis lines*=left,
clip=false
]
\addplot coordinates {(Then,3) (Now,9)};
\end{axis}
\draw[->,red,thick] (2,2) -- (3,5) node[midway,anchor=east] {+200\%};
\end{tikzpicture}
\end{document}