goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


Login  | Registrieren
Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Unterbrochene Y-Ache bei zwei Balkenplots

 

Grigi
Forum-Newbie
Forum-Newbie

Beiträge: 3
Anmeldedatum: 05.05.17
Wohnort: Clausthal
Version: ---
     Beitrag Verfasst am: 05.05.2017, 19:04     Titel: Unterbrochene Y-Ache bei zwei Balkenplots
  Antworten mit Zitat      
Hallöchen an die LaTeX-Gemeinde,

ich bin gerade dabei zwei unterschiedliche Balkendiagrammsätze in einen Plot zu fassen. Soweit hat das auch schon (mit dem ein oder anderen Workaround) geklappt.
Jetzt soll aber eine Achse unterbrochen werden, um einen besonders hohen Wert abbilden zu können.
Hier mal eben meinen Code:

Code • Öffne in Overleaf

\begin{filecontents}{RTM_Ref_Pos.txt}
Name   x   Messung   StdMessung nix
{ }   1   109   18   0
{ }   2   109   nan   0
{ }   3   110   nan   0
{ }   4   110   nan   0
{ }   5   108   nan   0
\end{filecontents}
\begin{filecontents}{RTM_Ref_Time.txt}
Name      x   Rechenzeit
Messung      1   nan
Grob      2   1
Mittel      3   5
Fein      4   757
Variabel   5   16
\end{filecontents}


\documentclass[ngerman, listof=totoc, index=totoc,  bibliography=totocnumbered, twoside, ]{scrartcl} %draft
\usepackage{babel}
\usepackage{graphicx}
\usepackage{here}
\usepackage{pgfplots}
\usetikzlibrary{patterns}
\pgfplotsset{
   compat=1.12,
   /pgf/number format/use comma
}
\begin{document}

\begin{figure}[H] %\label{fig.:FF-RTM-REF}
   \centering
   \begin{tikzpicture}
   \begin{axis}[
   ybar=10pt,  %configures bar shift
   bar width = 10pt,
   ymax=240,
   ymin=0,
   enlarge x limits=0.25,
   ylabel={Fließfrontfortschritt [mm]},
   width=0.9\linewidth, %  regelt die BREITE
   height=10cm, % regelt die HÖHE
   ytick={0,20,...,240},
   xticklabels from table={RTM_Ref_Pos.txt}{Name},      
   xtick=data,
   ticklabel style={/pgf/number format/.cd, use comma, 1000 sep = {}},
   ymajorgrids=true,
   legend pos= north west,% Legende oben links in Abb.
   legend cell align=right% Rechtsbündige Ausrichtung der Legende
   ]
%-------------------------- linker Datensatz --------------------------------  
   \addplot
   [draw = blue,
   fill = blue!30!white,
   error bars/.cd,
   y dir=both,
   y explicit,
   error mark=triangle*,
   error bar style={color=black}
]  
   table[
   x=x,
   y=Messung,
   y error=StdMessung,
   visualization depends on=\thisrow{StdMessung} \as \myshift,
   
]      
   {RTM_Ref_Pos.txt};
   \addlegendentry{Fließfrontposition};
%-----------------------------Platzhalter ----------------------------------
   \addplot
   [draw = red,
   fill=white,
   postaction={pattern=north east lines,pattern color=red!30!white},
   error bars/.cd,
   y dir=both,
   y explicit,
   error mark=triangle*,
   error bar style={color=black}
]  
   table[
   x=x,
   y=nix,
   
]      
   {RTM_Ref_Pos.txt};
   \addlegendentry{Rechenzeit};
%----------------------------------------------------------------------------
   \end{axis}
%------------------------------ Beginn rechte Balken--------------------------  
   \begin{axis}[
   ybar=15pt,  %configures bar shift
   bar width = 10pt,
   yticklabel pos=right,
   ymax=24,
   ymin=0,
   ytick={0,2,...,24},
   enlarge x limits=0.25,
   ylabel={Rechenzeit [min]},
   xlabel={Variante / Meshgröße},
   width=0.9\linewidth, %  regelt die BREITE
   height=10cm, % regelt die HÖHE
   xticklabels from table={RTM_Ref_Time.txt}{Name},      
   xtick=data,
   ticklabel style={/pgf/number format/.cd, use comma, 1000 sep = {}},
   ymajorgrids=false,
   legend pos= north east,% Legende oben links in Abb.
   legend cell align=right% Rechtsbündige Ausrichtung der Legende    
   ]
%-----------------------------Platzhalter ------------------------------
   \addplot
   [draw = blue,
   fill = blue!30!white,
   error bars/.cd,
   y dir=both,
   y explicit,
   error mark=triangle*,
   error bar style={color=black}
]  
   table[
   x=x,
   y=nix,
   
]      
   {RTM_Ref_Pos.txt};    
%----------------------------------------------------------------------
   
%--------------------------------rechter Datensatz---------------------
   \addplot
   [draw = red,
   fill=white,
   postaction={pattern=north east lines,pattern color=red!30!white},
   error bars/.cd,
   y dir=both,
   y explicit,
   error mark=triangle*,
   error bar style={color=black}
]  
   table[
   x=x,
   y=Rechenzeit,
   
]      
   {RTM_Ref_Time.txt};          
   \end{axis}      
%---------------------------------------------------------------------------
   
   \end{tikzpicture}
   \caption{Fliessfrontfortschritt der VARI-Referenzproben}
   \label{fig.:FF-RTM-REF}
\end{figure}
\end{document}
 


Das ganze sieht dann so aus, wie im Anhang. Der höchste Wert, also jener welcher aus dem Diagramm ragt, liegt übrigens bei über 750. Kennt ihr eine Möglichkeit, die rechte Achse so zu unterbrechen, dass sie beispielsweise bei 19min bricht und dann mit 700 -> 750 -> 800 endet?

Da ich mittlerweile nicht mehr weiter weiß, hoffe ich echt auf eure Hilfe. Sad

Beste Grüße,
Grigi

PS: Ein nettes Gimmick wäre es, wenn die "Messung" in die Mitte der Sektion rutscht Smile

Edit: Minimalbeispiel angepasst

Screenshot 2017-05-05 18.55.04.png
 Beschreibung:
Aktueller Stand

Download
 Dateiname:  Screenshot 2017-05-05 18.55.04.png
 Dateigröße:  45.86 KB
 Heruntergeladen:  48 mal
Private Nachricht senden Benutzer-Profile anzeigen

esdd
Forum-Meister
Forum-Meister

Beiträge: 2215
Anmeldedatum: 07.02.10
Wohnort: Stutensee
Version: MiKTeX 2.9
     Beitrag Verfasst am: 06.05.2017, 17:41     Titel:
  Antworten mit Zitat      
Eine Möglichkeit:

Code • Öffne in Overleaf
\begin{filecontents}{RTM_Ref_Pos.txt}
 x   Messung   StdMessung
1   109   18
2   109   nan
3   110   nan
4   110   nan
5   108   nan
\end{filecontents}
\begin{filecontents}{RTM_Ref_Time.txt}
 Name      x   Rechenzeit
 Messung      1   nan
 Grob      2   1
 Mittel      3   5
 Fein      4   757
 Variabel   5   16
\end{filecontents}

\documentclass[ngerman, listof=totoc, index=totoc,  bibliography=totocnumbered, twoside, ]{scrartcl} %draft
\usepackage{babel}
\usepackage[utf8]{inputenc}
%\usepackage{here}
\usepackage{pgfplots}% lädt auch graphicx
\usetikzlibrary{patterns}
\pgfplotsset{
    compat=1.12, % die aktuelle Version ist 1.14
    /pgf/number format/use comma,
    messung/.style={
      draw = blue,
      fill = blue!30!white,
      error bars/y dir=both,
      error bars/y explicit,
      error bars/error mark=triangle*,
      error bars/error bar style={color=black
}
    },
    rechenzeit/.style={
      draw = red,
      fill=white,
      postaction={pattern=north east lines,pattern color=red!30!white
},
      error bars/y dir=both,
      error bars/y explicit,
      error bars/error mark=triangle*,
      error bars/error bar style={color=black}
    }
}
\begin{document}

\begin{center}
  \begin{minipage}{\linewidth}
    \centering
    \begin{tikzpicture}
      \pgfplotsset{
        scale only axis,
        width=0.75\linewidth,
        height=8cm,
        ybar=10pt,
        /pgf/bar width = 10pt,
        xticklabels from table={RTM_Ref_Time.txt
}{Name},
        xtick=data,
        enlarge x limits=0.25,
        legend pos= north west,
        legend cell align=right,
        anchor=current axis.north west
      }
      \begin{axis}[
        ymax=200,
        ymin=0,
        ylabel={Fließfrontfortschritt [mm]
},
        ylabel style={shift={(2cm,1ex)}},
        ytick={0,20,...,180},
        ymajorgrids=true,
        axis x line=none,
        axis y line*=left
      ]
  %-------------------------- linker Datensatz --------------------------------    
        \addplot[
            messung,
            /pgf/bar shift=0pt,
            forget plot
         
]
          table[
            x=x,
            y=Messung,
            y error=StdMessung,
            skip coords between index={1}{100},
         
]{RTM_Ref_Pos.txt}
        ;
        \addplot[messung]
          table[
            x=x,
            y=Messung,
            y error=StdMessung,
            skip coords between index={0}{1},
         
]{RTM_Ref_Pos.txt};
  %-----------------------------Platzhalter ----------------------------------
      \addplot[rechenzeit]table[x=x,y expr=0,
          skip coords between index={0}{1}
       
]{RTM_Ref_Pos.txt};
  %----------------------------------------------------------------------------
      \end{axis}
  %------------------------------ Beginn rechte Balken--------------------------    
      \begin{axis}[
          ymax=20,
          ymin=0,
          ytick={0,2,...,18},
          ylabel={Rechenzeit [min]
},
          ylabel style={shift={(2cm,-1ex)}},
          xlabel={Variante / Meshgröße},
          axis x line*=left,
          axis y line*=right
        ]
  %%-----------------------------Platzhalter ------------------------------
        \addplot[draw=none,fill=none]table[x=x,y expr=0]{RTM_Ref_Pos.txt};
  %%--------------------------------rechter Datensatz---------------------
        \addplot[rechenzeit]table[x=x,y=Rechenzeit]{RTM_Ref_Time.txt};
      \end{axis}
  %---------------------------------------------------------------------------
      \pgfplotsset{
        anchor=current axis.south west,
        height=4cm,
     
}
      \begin{axis}[
        axis x line=none,
        axis y line*=left,
        ytick={7520,7540,...,7600},
        ymin=7500,ymax=7600,
        ymajorgrids=true,
     
]
        \addplot[messung] table[x=x,y expr=7500]{RTM_Ref_Pos.txt};
      \end{axis}
      \begin{axis}[
          axis x line*=top,
          axis y line*=right,
          ytick={752,754,...,760},
          ymin=750,ymax=760,
          xticklabel=\empty
       
]
        \addplot[messung]table[x=x,y expr=750]{RTM_Ref_Pos.txt};
        \addlegendentry{Fließfrontposition};
        \addplot[rechenzeit]table[x=x,y=Rechenzeit]{RTM_Ref_Time.txt};
        \addlegendentry{Rechenzeit};
      \end{axis}
      \fill[white]
        ([shift={(-.2,.2)}]current axis.south west)
        rectangle
        ([shift={(.2,-.2)}]current axis.south east)
      ;
    \end{tikzpicture}
    \captionof{figure}{Fliessfrontfortschritt der VARI-Referenzproben}
    \label{fig.:FF-RTM-REF}
  \end{minipage}
\end{center}
\end{document}


Ergebnis:




gl_splitbarplot.png
 Beschreibung:

Download
 Dateiname:  gl_splitbarplot.png
 Dateigröße:  37.13 KB
 Heruntergeladen:  37 mal
Private Nachricht senden Benutzer-Profile anzeigen

Grigi
Forum-Newbie
Forum-Newbie

Beiträge: 3
Anmeldedatum: 05.05.17
Wohnort: Clausthal
Version: ---
     Beitrag Verfasst am: 07.05.2017, 10:36     Titel:
  Antworten mit Zitat      
Wow, dankeschön esdd! Das sieht schon gut aus und kommt so in den Bericht Very Happy

Eine kleine Frage habe ich noch: Kann man den Bruch in den Achsen (und evtl. auch am Balken) als solchen kennzeichnen? Also beispielsweise mit zwei diagonal verlaufenden Strichen.

Beste Grüße,
Grigi
Private Nachricht senden Benutzer-Profile anzeigen

esdd
Forum-Meister
Forum-Meister

Beiträge: 2215
Anmeldedatum: 07.02.10
Wohnort: Stutensee
Version: MiKTeX 2.9
     Beitrag Verfasst am: 07.05.2017, 12:42     Titel:
  Antworten mit Zitat      
Grigi hat Folgendes geschrieben:

Eine kleine Frage habe ich noch: Kann man den Bruch in den Achsen (und evtl. auch am Balken) als solchen kennzeichnen? Also beispielsweise mit zwei diagonal verlaufenden Strichen.


Du kannst nach der letzten axis axis Umgebung Striche Deiner Wahl einzeichnen. Hier mal waagrechte:

Code • Öffne in Overleaf
...
       \end{axis}
       % Trennung von oberem und unterem Diagrammteil
       \fill[white]
         ([shift={(-.2,.05)}]current axis.south west)coordinate(h1)
         rectangle
         ([shift={(.2,-.05)}]current axis.south east)coordinate(h2)
       ;
       % Trennstriche an Achsen
       \draw
         (h1)--+(.4,0)
         (h1|-h2)--+(.4,0)
         (h2)--+(-.4,0)
         (h1-|h2)--+(-.4,0)
       ;
     \end{tikzpicture}
     \captionof{figure}{Fliessfrontfortschritt der VARI-Referenzproben}
     \label{fig.:FF-RTM-REF}
   \end{minipage}
\end{center}
\end{document}




PS: Bitte sieh Dir an, was der Status "Rückfrage" bedeutet.

gl_barplotsplit.png
 Beschreibung:

Download
 Dateiname:  gl_barplotsplit.png
 Dateigröße:  16.77 KB
 Heruntergeladen:  29 mal
Private Nachricht senden Benutzer-Profile anzeigen

Grigi
Forum-Newbie
Forum-Newbie

Beiträge: 3
Anmeldedatum: 05.05.17
Wohnort: Clausthal
Version: ---
     Beitrag Verfasst am: 07.05.2017, 12:48     Titel:
  Antworten mit Zitat      
Super! Dankeschön noch mal für die schnelle Hilfe und ein schönes Restwochenende. Wink
Private Nachricht senden Benutzer-Profile anzeigen

Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen
.

goLaTeX ist Teil der goForen
goForen.de goMATLAB.de goLaTeX.de goPCB.de


  Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2017 goLaTeX.de