Ich war doch zu optimistisch, dass ich nun mit pgfplots umgehen kann.

Die Beschriftung auf der Y-Achse hab ich versucht in eine Währung zu ändern. Sie sollte in 50 000 Schritten bis zu 300 000 Kronen gehen. Der höchste Datenwert liegt bei 250 000 Kronen. Es gelingt mir nicht die Legende anzupassen. Wie sich das mit ymax und ytick bewerkstelligen lässt, erschließt sich mir nicht bzw. die Anpassung ist mir misslungen.

Open in Online-Editor
\documentclass[tikz]{standalone}
\usepackage{pgfplots,filecontents}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{dateplot}

\begin{filecontents}{infla.csv}
 Year,Interbank
 2000-01-01,48550
 2008-07-01,250100
 2015-12-01,22000
\end{filecontents}

\begin{document}
\sffamily   
\begin{tikzpicture}
\sffamily
\begin{axis}[
    date ZERO=2000-01-01,
    date coordinates in=x,
    no marks,
    width=12cm,height=6cm,
    enlargelimits=false,
    xticklabel={\tiny\year},
    xtick={2000-1-1,2001-01-01,2002-01-01,2003-01-01,2004-01-01,2005-01-01,2006-01-01,2007-01-01,2008-01-01,2009-01-01,2010-01-01,2011-01-01,2012-01-01,2013-01-01,2014-01-01,2015-01-01},
    xtick pos=left,
    xtick align=outside,
    ymin=0,ymax=300 000,
    yticklabel={\pgfmathprintnumber[verbatim]{\tick}ISK},
    ytick style={draw=none},
    yticklabel pos=right,
    ymajorgrids=true,
    legend style={
    draw=none,
     legend cell align=left,
   at={(1.12,1.05)},
  anchor=north west,
       legend image code/.code={
    \filldraw[##1] (-.5ex,-.5ex) rectangle (1ex,1ex);
   }
} ]       
    \addplot table[col sep=comma,x=Year,
              y={Interbank}] {infla.csv};
          \addlegendentry{ISK};
          \end{axis}
\
    end{tikzpicture}
    \end{document}

gefragt 06 Feb '16, 20:50

Tischa's gravatar image

Tischa
1.4k27102128
Akzeptiert-Rate: 15%

bearbeitet 07 Feb '16, 10:59

saputello's gravatar image

saputello
11.1k154365


Standardmäßig skaliert pgfplots die Achsen ab einer gewissen Größenordnung. Ist das nicht gewünscht, so setzt man scaled y ticks=false. Für die anschließende Formatierung der y-Ticks lohnt es sich das entsprechende Kapitel der TikZ-Dokumentation zu konsultieren. Dort findet man

  • assume math mode: nicht überprüfen ob der Mathemodus an ist
  • int detect: keine Nachkommastellen für ganze Zahlen anzeigen
  • 1000 sep={\,}: Kleiner Abstand zwischen 3er-Kolonnen

Hier das vollständige Beispiel (die Legende musste etwas nach rechts rücken, um die y-Achse nicht zu verdecken)

Open in Online-Editor
\documentclass[tikz]{standalone}
\usepackage{pgfplots,filecontents}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{dateplot}

\begin{filecontents}{infla.csv}
Year,Interbank
2000-01-01,48550
2008-07-01,250100
2015-12-01,22000
\end{filecontents}

\begin{document}
\sffamily   
\begin{tikzpicture}
  \sffamily
  \begin{axis}[
    date ZERO=2000-01-01,
    date coordinates in=x,
    no marks,
    width=12cm,height=6cm,
    enlargelimits=false,
    xticklabel={\tiny\year},
    xtick={2000-1-1,2001-01-01,2002-01-01,2003-01-01,2004-01-01,2005-01-01,2006-01-01,2007-01-01,2008-01-01,2009-01-01,2010-01-01,2011-01-01,2012-01-01,2013-01-01,2014-01-01,2015-01-01},
    xtick pos=left,
    xtick align=outside,
    ymin=0,ymax=300 000,
    % assume math mode: nicht überprüfen ob der Mathemodus an ist
    % int detect: keine Nachkommastellen für ganze Zahlen anzeigen
    % 1000 sep={\,}: Kleiner Abstand zwischen 3er-Kolonnen
    yticklabel={\pgfmathprintnumber[assume math mode,int detect,1000 sep={\,}]{\tick} ISK},
    % y-Achse nicht skalieren, sondern die tatsächliche Zahl im \tick angeben
    scaled y ticks=false,
    ytick style={draw=none},
    yticklabel pos=right,
    ymajorgrids=true,
    legend style={
      draw=none,
      legend cell align=left,
      at={(1.22,1.05)},
      anchor=north west,
      legend image code/.code={
        \filldraw[##1] (-.5ex,-.5ex) rectangle (1ex,1ex);
      }
    } ]       
    \addplot table[col sep=comma,x=Year,
    y={Interbank}] {infla.csv};
    \addlegendentry{ISK};
  \end{axis}
  \end{tikzpicture}
\end{document}

alt text

Permanenter link

beantwortet 06 Feb '16, 23:16

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

@Henri. Vielen Dank. Ich bin jedes Mal wieder erstaunt. Danke!!!

(06 Feb '16, 23:45) Tischa
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×296
×11

gestellte Frage: 06 Feb '16, 20:50

Frage wurde gesehen: 7,832 Mal

zuletzt geändert: 07 Feb '16, 10:59