Error-Bar Diagramm mit gruppierten x-ticks

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Error-Bar Diagramm mit gruppierten x-ticks

von mypTx » Mi 10. Sep 2014, 18:42

sehr sehr geil 8)

wie halt alles einfach direkt funktioniert.

Danke!

von esdd » Mi 10. Sep 2014, 18:37

Die Achsen werden standardmäßig in jede Richtung um 10% verlängert. Das kannst Du aber ändern:
ymin=0,ymax=60,
enlarge y limits={rel=0.1,upper},
Dann wird die y-Achse nur noch nach oben um 10% verlängert.

Gruß
Elke

y-Achsen unteres Limit

von mypTx » Mi 10. Sep 2014, 18:25

Hallo nochmal,

ich wollte die y-Achse so formatieren, dass das untere Limit fix auf "0" ist und bei dieser auch die x-Achse beginnt.

wenn ich jetzt in den "axis" Optionen
%...
ymin=0,
%...
einfüge, verschiebt sich die x-Achse nach unten und beginnt bei Schätzungsweise -0.5. (Der Fehler beruft sich auf den Quellcode von "esdd/Elke")

Kann man das irgendwie unterdrücken?

Vielen Dank.

Vielen Dank

von mypTx » Di 9. Sep 2014, 23:09

Hi Elke,
Hi prankenandi,

ich bin immer wieder überrascht wie schnell man wirklich gute Antworten bekommt.

In meinen Augen seid ihr beide wirklich gute Zauberer :D

@Elke: Danke für den Hinweis mit dem tikz package load, bin leider kein versierter LaTeX Nutzer und finde immer wieder relikte von anderen "copy/paste" Lösungen in meinem Dokument. Doch zunehmend wird das Ganze sauberer und sauberer.

Vielen vielen Dank nochmals an euch beide.

Viele Grüße,
mypTx

von esdd » Di 9. Sep 2014, 10:40

Hier ist noch ein alternativer Vorschlag:
\documentclass[a4paper,11pt]{article} 
\usepackage{pgfplots} 
\pgfplotsset{
  compat=1.11,compat/show suggested version=false,
  width=\textwidth}  

%\usepackage{filecontents} 
%\begin{filecontents}{daten.txt} 
 %x bez y err label 
 %1 V1 19.0 0.4 a 
 %2 V1 24.5 0.0 b 
 %3 V1 19.3 0.9 c 
 %4 V2 53.3 2.1 a 
 %5 V2 47.1 0.5 b 
 %6 V2 18.1 0.3 c 
 %7 V4 20.6 0.3 a 
 %8 V4 19.5 0.4 b 
 %9 V4 26.5 0.1 c 
 %10 V5 23.6 0.4 a 
 %11 V5 22.3 0.4 b 
 %12 V5 35.4 1.2 c 
 %13 T1 43.7 0.5 a 
 %14 T1 15.8 0.0 b 
 %15 T1 14.3 0.2 c 
%\end{filecontents} 

\begin{document} 
\begin{center} 
\begin{tikzpicture} 
   \begin{axis}[ 
       axis x line=bottom, 
       axis y line=left, 
       enlargelimits=true, 
       ymax=60, 
       xtick={2,5,...,98},
       xtick style={draw=none},
       xticklabels={V1,V2,V4,V5,T1},
       legend entries={$700$,$1000$,$1300$}, 
       ] 
       
     \addplot[scatter, only marks, 
      point meta=explicit symbolic, 
      scatter/classes={ 
       a={mark=x,blue},% 
       b={mark=triangle,red},% 
       c={mark=o,draw=black}},
       ] 
     plot[error bars/.cd, y dir=both, y explicit] 
     table[meta=label,x=x, y=y, y error=err]{daten.txt};
   \pgfplotsinvokeforeach{0,...,5}{
      \draw[help lines]({rel axis cs:0,0}-|3*#1+.5,0)--(0,50-|3*#1+.5,0);}
   \end{axis}
\end{tikzpicture} 
\end{center} 
\end{document} 
pgfplots lädt übrigens sowieso tikz.

Falls Du eine ältere Version von pgfplots verwendest müsste der Code für das Zeichnen der Hilfslinien so aussehen:
\draw[help lines]({rel axis cs:0,0}-|{axis cs:3*#1+.5,0})--({axis cs:0,50}-|{axis cs:3*#1+.5,0});}
Gruß
Elke

von prankenandi » Di 9. Sep 2014, 09:04

Hallo,

ist zwar vielleicht etwas unkonventionell gelöst, aber erfüllt den Zweck.

MfG
\documentclass[a4paper,11pt]{article}

\usepackage{pgfplots}
\pgfplotsset{compat=newest,compat/show suggested version=false, width=\textwidth}

\usepackage{tikz}
\usetikzlibrary{positioning, patterns}

\usepackage{filecontents}

\begin{document}

\begin{filecontents}{daten.txt}
x bez y err label
1 V1 19.0 0.4 a
2 V1 24.5 0.0 b
3 V1 19.3 0.9 c
4 V2 53.3 2.1 a
5 V2 47.1 0.5 b
6 V2 18.1 0.3 c
7 V4 20.6 0.3 a
8 V4 19.5 0.4 b
9 V4 26.5 0.1 c
10 V5 23.6 0.4 a
11 V5 22.3 0.4 b
12 V5 35.4 1.2 c
13 T1 43.7 0.5 a
14 T1 15.8 0.0 b
15 T1 14.3 0.2 c
\end{filecontents}

\begin{center}
\begin{tikzpicture}
  \begin{axis}[
      axis x line=bottom,
      axis y line=left,
      enlargelimits=true,
      xmax=15,
      xtick={1,...,15},
      legend entries={$700$,$1000$,$1300$},
      ymax=60,
      %ymin=10,
      xticklabels=none,
      xmajorticks=false,
      clip=false,
      ]
     
    \addplot[scatter, only marks,
     point meta=explicit symbolic,
     scatter/classes={
      a={mark=x,blue},%
      b={mark=triangle,red},%
      c={mark=o,draw=black}},
      ]
    plot[error bars/.cd, y dir=both, y explicit]
    table[meta=label,x=x, y=y, y error=err]{daten.txt};
 %
\node[anchor=north] at (axis cs:2,9.5){V1};
\node[anchor=north] at (axis cs:5,9.5){V2};
\node[anchor=north] at (axis cs:8,9.5){V4};
\node[anchor=north] at (axis cs:11,9.5){V5};
\node[anchor=north] at (axis cs:14,9.5){T1};
%
\draw[black] (axis cs:3.5,60) -- (axis cs:3.5,10);
\draw[black] (axis cs:6.5,60) -- (axis cs:6.5,10);
\draw[black] (axis cs:9.5,60) -- (axis cs:9.5,10);
\draw[black] (axis cs:12.5,60) -- (axis cs:12.5,10);
%
\end{axis}
\end{tikzpicture}
\end{center}
\end{document} 

Bitte um Verschiebung

von mypTx » Di 9. Sep 2014, 08:26

Sorry, habs im falschen Forum erstellt.

Bitte um Verschiebung des Threads nach "Tabellen und Grafiken"

Gruß,
mypTx

Error-Bar Diagramm mit gruppierten x-ticks

von mypTx » Di 9. Sep 2014, 01:17

Hallo,

bei meinem letzten Problem wurde mir hier wunderbar geholfen.
Nun wende ich mich erneut an auch, diesmal mit einem Problem im Bereich der Diagramme.

Im folgenden Minimalbeispiel sind zwei Varianten eines Error-Bar-Plots dargestellt.
Das erste Plot gibt die Werte in richtiger Reihenfolge (1,2,3...15) aus.
Das gewünschte Ergebnis ähnelt jedoch dem zweiten Plot.
Wobei hier die einzelnen Werte für "V1" alle auf einer "Linie" liegen, und diese aber wie im ersten Plot jeder auf einem eigenen xtick verteilt.

Also prinzipiell geht es um die x-Achsen Beschriftungen bzw. die Gruppierung von xticks über mehrere Werte.

Hoffe ihr versteht einigermaßen was ich meine.
Anhand einer Fotomontage habe ich das gewünschte Ergebnis einmal hingepfuscht.

Bild
\documentclass[a4paper,11pt]{article}

\usepackage{pgfplots}
\pgfplotsset{compat=newest,compat/show suggested version=false, width=\textwidth}

\usepackage{tikz}
\usetikzlibrary{positioning, patterns}

\usepackage{filecontents}

\begin{document}

\begin{filecontents}{daten.txt}
x bez y err label
1 V1 19.0 0.4 a
2 V1 24.5 0.0 b
3 V1 19.3 0.9 c
4 V2 53.3 2.1 a
5 V2 47.1 0.5 b
6 V2 18.1 0.3 c
7 V4 20.6 0.3 a
8 V4 19.5 0.4 b
9 V4 26.5 0.1 c
10 V5 23.6 0.4 a
11 V5 22.3 0.4 b
12 V5 35.4 1.2 c
13 T1 43.7 0.5 a
14 T1 15.8 0.0 b
15 T1 14.3 0.2 c
\end{filecontents}

\begin{center}
\begin{tikzpicture}
  \begin{axis}[
		axis x line=bottom,
		axis y line=left,
		enlargelimits=true,
		xmax=15,
		ymax=60,
		xtick={1,...,15},
		legend entries={$700$,$1000$,$1300$},
		]
		
    \addplot[scatter, only marks,
	  point meta=explicit symbolic,
	  scatter/classes={
		a={mark=x,blue},%
		b={mark=triangle,red},%
		c={mark=o,draw=black}},
		]
    plot[error bars/.cd, y dir=both, y explicit]
    table[meta=label,x=x, y=y, y error=err]{daten.txt};
      
  \end{axis}
\end{tikzpicture}
\end{center}

\begin{center}
\begin{tikzpicture}
  \begin{axis}[
		axis x line=bottom,
		axis y line=left,
		enlargelimits=true,
		xtick={data},
		symbolic x coords={V1,V2,V4,V5,T1},
		ymax=60,
		legend entries={$700$,$1000$,$1300$},
		]	
    \addplot[scatter, only marks,
	  point meta=explicit symbolic,
	  scatter/classes={
		a={mark=x,blue},%
		b={mark=triangle,red},%
		c={mark=o,draw=black}},
		]
    plot[error bars/.cd, y dir=both, y explicit]
    table[meta=label,x=bez, y=y, y error=err]{daten.txt};
      
  \end{axis}
\end{tikzpicture}
\end{center}
\end{document}
Vielen Dank schon mal.

Viele Grüße,
mypTx

Nach oben