Tikzpicture - Arrow next to/under plot label

4.8k views Asked by At

I am looking for a help with Latex. I'm new here so unfortunately I'm not allowed to post pictures yet.

I have a tikzpicture plot with labeled axes (x and y). Now I would like to add an arrow below the x-axis to indicate the direction of the subsequential treatments. In addition I would like to have an arrow left of the y-axis label pointing upwards. This arrow should have a second label saying "relative increase in Fe".

\begin{figure}[htbp]
\centering
\begin{tikzpicture}[scale=1]
\begin{axis}[
    %legend style={at={(1.05,0.05)}, %gibt Ort für Legende an
    %anchor=south west},
    %axis x line=bottom,    % erzeugt x-Achse mit Pfeil
    %axis y line=left,  %
    width=15.5cm,
    height=10cm,
    %scaled ticks=false,
    %ymin=0,
    xmin=-0.5,
    xmax=5,
    ymin=0,
    ymax=5,
    xtick={0,1,2,3,4},
    xticklabels={Fe2O3,1,2,3,4},
    bar width=50pt,
    %ytick={},
    %yticklabels={},
                %use un%%ts,
                %x unit=-,
                %x unit prefix=,
                %y unit=\frac{m}{s},
                %y unit prefix=,
        xlabel=Subsequential Treatments over Time ,
    ylabel=Auger Peak to Peak Height Ratio Fe:O,
            x tick label style= {rotate=90,anchor=east},
            ybar stacked]



    \addplot [draw=white, very thin]
            coordinates {(0,1) (1,1) (2,3) (3,2) (4,1.5)}; 
            \addplot [draw= blue, fill=blue]
            coordinates {(0,1) (1,1) (2,3) (3,2) (4,1.5)}; 


            %\node at (100,1) [orange!50!yellow]{\small{ZnO-h}};


\end{axis}
\end{tikzpicture}

\caption[Auger Spectrum of HOPG]{Auger Peak to Peak Height Ratios of Fe:O at an primary electron beam   of \unit{2.0}{keV}.}
 \label{Auger_ratio_histogram_}
\end{figure}
1

There are 1 answers

0
Torbjørn T. On

The code below illustrates two techniques for placing such arrows. The starting point of both is to add name=MyAxis to the axis options, which allows you to refer to the anchor points of the axis as with a normal node. A pgfplots axis also has anchors such as outer north east, which lies outside the axis descriptions, while north east lies on the corner of the axes.

enter image description here

\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
    name=MyAxis,
    %legend style={at={(1.05,0.05)}, %gibt Ort für Legende an
    %anchor=south west},
    %axis x line=bottom,    % erzeugt x-Achse mit Pfeil
    %axis y line=left,  %
    width=15.5cm,
    height=10cm,
    %scaled ticks=false,
    %ymin=0,
    xmin=-0.5,
    xmax=5,
    ymin=0,
    ymax=5,
    xtick={0,1,2,3,4},
    xticklabels={Fe2O3,1,2,3,4},
    bar width=50pt,
    %ytick={},
    %yticklabels={},
                %use un%%ts,
                %x unit=-,
                %x unit prefix=,
                %y unit=\frac{m}{s},
                %y unit prefix=,
        xlabel=Subsequential Treatments over Time ,
    ylabel=Auger Peak to Peak Height Ratio Fe:O,
            x tick label style= {rotate=90,anchor=east},
            ybar stacked]



    \addplot [draw=white, very thin]
            coordinates {(0,1) (1,1) (2,3) (3,2) (4,1.5)}; 
            \addplot [draw= blue, fill=blue]
            coordinates {(0,1) (1,1) (2,3) (3,2) (4,1.5)}; 


            %\node at (100,1) [orange!50!yellow]{\small{ZnO-h}};


\end{axis}
\draw [-latex] ([yshift=-2ex]MyAxis.outer south west) --node[below]{Direction of subsequential treatments} ([yshift=-2ex]MyAxis.outer south east);
\draw [-latex] (MyAxis.outer south west) ++(-2ex,0) coordinate(start) --node[sloped,above] {relative increase in Fe} (start |- MyAxis.outer north west);
\end{tikzpicture}
\end{document}