TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am fairly new to using pgfplots and have been combing the manual for a couple hours now and I can't find an elegant solution to my problem. I would like to have two columns of legend entries and then one "label" underneath them all and centered. I managed to get it by playing with the [text width= ] settings, but I was wondering if there was a better way. MWE:

\documentclass[11pt,titlepage]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10,
                height=0.5\textwidth,
                width=0.8\textwidth,
                every axis/.append style={thick}}
\begin{document}

\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[
        legend pos=north west,
        legend columns=2,
        scaled y ticks = false,
        xlabel={Months},
        ylabel={Profit},
        yticklabel={\$ \pgfmathprintnumber{\tick} },
        ymin={-5500},
        xmin={0},
        xmax={5.5},
        ytick={-5500, 0, 5000, 10000, 15000},
        xtick={1,2,...,5},
        grid=major,
        ]
    \addplot[mark=none, color=red, domain=0:5.5] {900*x -5200};
    \addlegendentry{120}
    \addplot[mark=none, color=green, domain=0:5.5] {1900*x -5200};
    \addlegendentry{130}
    \addplot[mark=none, color=blue, domain=0:5.5] {2900*x -5200};
    \addlegendentry{140}
    \addplot[mark=none, color=orange, domain=0:5.5] {3900*x -5200};
    \addlegendentry{150}
    \addlegendimage{empty legend}
    \addlegendentry[text width=30pt]{Drinks/Day}
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}
share|improve this question
    
btw, is there a less annoying way to insert code than to go add 4 spaces to each line? – JayCle Apr 26 '14 at 14:37
    
If you are using Emacs with AUCTeX, you can hit tab and it will indent the line to the appropriate level. I imagine other editors do the same (at least that would be nice). – dustin Apr 26 '14 at 14:40
    
@JayCle: A tip: If you indent lines by 4 spaces, they'll be marked as a code sample. You can also highlight the code and click the "code" button (with "{}" on it). Or just highlight and press "CTRL-K"... – Christian Hupfer Apr 26 '14 at 14:40
    
@ChristianHupfer he meant on the forum. I thought in his editor to achieve the indentation. My mistake. – dustin Apr 26 '14 at 14:42
    
@dustin: No problem at all ;-) – Christian Hupfer Apr 26 '14 at 14:44

For the last two lines inside the axis environment you can also name the legend entry and position it relative to that. Line legend images are 0.6 cm by default hence you can tweak quicker.

    \addlegendimage{empty legend}
    \addlegendentry[name=l1,minimum height=5mm,]{}
\end{axis}
\node at ([xshift=0.35cm]l1) {Drink/Day};

enter image description here

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.