Hallo!

bisher habe ich alle Herausforderungen durch Recherche in Foren und Manuals lösen können, aber jetzt stoße ich an meine Grenzen... schon seit Stunden versuche ich eine kleine Anpassung an den x Achsen vorzunehmen.

Soll:

Es soll oberhalb und unterhalb des Diagramms jeweils die gleiche x Achse geben. Von 55 bis 68 mit jeweils 11 minor ticks(ein Hauptintervall ist ein Jahr, daher die Unterteilung in 12 Monate) und einem tick zur Halbierung eines Hauptintervalls

Die einzigen Unterschiede sollen sein:

  • dass es an der oberen Achse die Labels von 55 bis 68 gibt, so wie es schon dargestellt ist.
  • dass es an der unteren Achse einen roten Senkrechten strick gibt, so wie es schon dargestellt ist.

jetzt zu der Herausforderung:

Obere Achse: ich bekomme die minor ticks (minor tick num=11) und den tick zur Halbierung (minor tick num=1) nicht an die Hauptintervalle angepasst. Vorher ging die Achse von 58 bis 68 da hat alles gepasst.

Untere Achse, da bekomme ich weder die Hauptintervalle (soll 55 bis 68 also 13 Intervalle) noch die minor ticks vernünftig dargestellt.

Über Hilfe wäre ich sehr dankbar, ich verzweifle dran, xmin und xmax scheint komplett ignoriert zu werden, die Achsen haben immer 10 Intervalle von 0,1 bis 1

Open in Online-Editor
 \documentclass[12pt]{article}  
 \usepackage{pgfplots, pgfplotstable} % Darstellung der Grafiken
 \begin{document}       
\begin{tikzpicture}
  % obere X-Achse: Hervorhebung des Ticks zur Halbierung zwischen den Hauptintervallen:
  \begin{axis}[
      width=18cm,
      height=3cm,
      draw=none,
      xmin=55,
      xmax=68,
      axis y line = none,
      axis x line = top,
      enlarge y limits=0.4,
      minor tick num=1,
      minor tick length = 6pt,
      minor tick style ={line width=.5pt,black},
      xticklabels={,,},
      grid=none,]
  \end{axis}

  % obere X-Achse: Major Ticks und Minor Ticks:
  \begin{axis}[
      title style={yshift=2.5ex,},
      width=18cm,
      height=3cm,
      xbar stacked,
      draw=none,
      xmin=55,
      xmax=68,
      axis y line = none,
      axis x line = top,
      enlarge y limits=0.4,
      major tick length = 8pt,
      major tick style={line width=.6pt,draw=black},
      minor tick style={line width=.2pt,draw=black},
      minor tick num=11,
      grid=none,]
      \addplot[fill=white, draw=none] coordinates {(62,1)  (61,2)  (59,3)};
      \addplot[fill=blue!30, draw=none] coordinates   {(2,1)  (1,2) (0,3) };
      \addplot[fill=blue!60, draw=none] coordinates  {(2,1)  (1,2) (0,3) };
  \end{axis}

  %roter senkrechter Strich
  \begin{axis}[
      width=18cm,
      height=3cm,
      draw=none,
      xmin=55,
      xmax=68,
      axis y line = none,
      axis x line = bottom,
      enlarge y limits=0.4,
      major grid style={line width=.9pt,draw=red},
      minor tick length = 0.1pt,
      minor tick style={line width=.1pt,draw=black},
      xtick={57},
      xticklabels={,,},
      grid =major,]
      \addplot[color=white] coordinates { (59,1)};
  \end{axis}

  % untere X-Achse: Hervorhebung des Ticks zur Halbierung zwischen den Hauptintervallen:
  \begin{axis}[
      width=18cm,
      height=3cm,
      draw=none,
      xmin=55,
      xmax=68,
      axis y line = none,
      axis x line = bottom,
      enlarge y limits=0.4,
      minor tick num=1,
      minor tick length = 6pt,
      minor tick style ={line width=.5pt,black},
      xticklabels={,,},
      grid=none,]
  \end{axis}

  % untere X-Achse: Major Ticks und Minor Ticks:
  \begin{axis}[
      title style={yshift=2.5ex,},
      width=18cm,
      height=3cm,
      xbar stacked,
      draw=none,
      xmin=55,
      xmax=68,
      axis y line = none,
      axis x line = bottom,
      enlarge y limits=0.4,
      major tick length = 8pt,
      major tick style={line width=.6pt,draw=black},
      minor tick style={line width=.2pt,draw=black},
      minor tick num=11,
      xticklabels={,,},
      grid=none,]
  \end{axis}
\end{tikzpicture}
\end{document}

gefragt 19 Sep '16, 11:39

TimBo's gravatar image

TimBo
29123
Akzeptiert-Rate: 0%

bearbeitet 19 Sep '16, 12:48

esdd's gravatar image

esdd
17.8k284257

Willkommen auf TeXwelt. Ich habe Deinen Code formatiert. Schau einfach mal hier.

(19 Sep '16, 12:51) esdd

Bei einem Teil Deiner axis Umgebungen fehlt die Info, welcher y-Bereich genutzt werden soll. Deshalb bekommst Du auch die Warnung:

Package pgfplots Warning: You have an axis with empty range (in direction y). Replacing it with a default range and clearing all plots.

Aber Du musst ohnehin dafür sorgen, dass alle axis Umgebungen, die übereinander liegen, einheitliche Einstellungen verwenden. Ich würde diese deshalb zunächst für alle axis Umgebungen innerhalb des tikzpictures mittels \pgfplotset einstellen. Insbesondere muss da alles stehen, was die Einteilung der Achsen beeinflusst.

Open in Online-Editor
\pgfplotsset{
    every linear axis/.append style={
        width=18cm,
        height=3cm,
        xmin=55,
        xmax=68,
        xtick={55,...,68},
        xticklabel=\empty,
        axis y line=none,
        ymin=1,
        ymax=3,
        enlarge y limits=.4,
        major tick length = 8pt,
        major tick style={line width=.6pt,draw=black},
        minor tick length = 6pt,
        minor tick style ={line width=.2pt,black},
    }
}

Mir ist jetzt nicht klar, was genau Du plotten möchtest, deshalb ist hier mal einfach ein beliebiges Beispiel.

alt text

Open in Online-Editor
\documentclass[margin=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}% newest wegen dem Online-Editor, derzeit aktuell ist 1.14

\begin{document}
\begin{tikzpicture}
\pgfplotsset{
    every linear axis/.append style={
        width=18cm,
        height=3cm,
        xmin=55,
        xmax=68,
        xtick={55,...,68},
        xticklabel=\empty,
        axis y line=none,
        ymin=1,
        ymax=3,
        enlarge y limits=.4,
        major tick length = 8pt,
        major tick style={line width=.6pt,draw=black},
        minor tick length = 6pt,
        minor tick style ={line width=.2pt,black},
    }
}
% obere x-Achse und roter Strich bei 57
\begin{axis}[
    axis x line = top,
    minor tick num=1,
    extra x ticks=57,
    extra x tick style={grid=major,major grid style={line width=.9pt,draw=red}}
    ]
    \fill[fill=blue!30] (60,1)rectangle(65,3);
    \fill[fill=blue!60] (62,1)rectangle(65,3);
\end{axis}
%untere x-Achse
\begin{axis}[
    axis x line = bottom,
    minor tick num=11,
    ]
\end{axis}
\end{tikzpicture}
\end{document}

Bitte beachte, dass direkt nach dem Laden von pgfplots immer eine Einstellung für compat vorgenommen werden sollte.

Permanenter link

beantwortet 19 Sep '16, 13:10

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

vielen Dank esdd! Das hilft mir schon mal weiter! meine Folgefrage habe ich hier eingestellt: http://texwelt.de/wissen/fragen/18496/tikz-achsengestaltung-mehrere-unterschiedliche-minor-ticks-auf-einer-achse

(19 Sep '16, 16:18) TimBo
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:

×298
×6

gestellte Frage: 19 Sep '16, 11:39

Frage wurde gesehen: 8,520 Mal

zuletzt geändert: 19 Sep '16, 16:18