goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


Login  | Registrieren
Direktlinks:
Zuletzt aktive Beiträge
Unbeantwortete Beiträge
[Erweitert]

Forenstatistik:
Beiträge: 100238
Top-Poster: Johannes_B (5063)

Wir begrüßen unseren neuesten Benutzer mbyrl.

Links:


Mit Unterstützung von DANTE e.V.: Deutschsprachige Anwendervereinigung TeX. Danke den Mitgliedern!





Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Graphen (Tikzpictures) gruppieren

 

DEVV
Forum-Fortgeschrittener
Forum-Fortgeschrittener

Beiträge: 89
Anmeldedatum: 31.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2019, 17:12     Titel: Graphen (Tikzpictures) gruppieren
  Antworten mit Zitat      
Hey Leute,

ich habe 4 Graphen von denen jeweils 2 nebeinenader geplottet werden sollen. Dabei besitzen alle Graphen die selbe X-Achsenbeschriftung, haben aber alle eine andere Y-Achsenbeschriftung.

Nun habe ich 2 mal diese 4 Graphen. Einmal für normalverteilte Daten und einmal für gleichverteilte Daten (genaueres ist hier nicht wichtig).

Deswegen würde ich diese 4 Graphen gerne gruppieren und eine Überschrift drüber schreiben: "Gleichverteilte Daten" oder ähnliches.

Wenn ich das bei allen Graphen als Title setze, dann passen die nicht mehr nebeneinander. Deswegen würde ich es gerne als Überschrift drüber schreiben.

Was fallen euch da für Lösungen ein?

Hier einmal ein Bild vom Status Quo: (siehe Anhang)


Grüße
K

Unbenannt.PNG
 Beschreibung:

Download
 Dateiname:  Unbenannt.PNG
 Dateigröße:  66.36 KB
 Heruntergeladen:  33 mal
Private Nachricht senden Benutzer-Profile anzeigen

Johannes_B
Moderator
Moderator


Beiträge: 5063
Anmeldedatum: 01.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2019, 17:15     Titel:
  Antworten mit Zitat      
Vermutlich einfach als Text setzen. Du brauchst doch nichts spezielles dafür?
_________________

TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.
Private Nachricht senden Benutzer-Profile anzeigen

DEVV
Forum-Fortgeschrittener
Forum-Fortgeschrittener

Beiträge: 89
Anmeldedatum: 31.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2019, 17:43     Titel:
  Antworten mit Zitat      
Stimmt. Manchmal kann es so simpel sein ^^. Hab ein center Block an den Anfang der Figure gesetzt und die Überschrift in nen textbf gesetzt.

Hab auch irgendwie drauf spekuliert, dass jemand mit etwas Ahnung um die Ecke kommt und mir irgendeine Lösung, die ich nicht beherrsche an den Kopf wirft (wie groupplots oder so).
Private Nachricht senden Benutzer-Profile anzeigen

Ratgeber
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2019, 18:35     Titel: Aller Anfang ist …
  Antworten mit Zitat      
DEVV hat Folgendes geschrieben:
[…] Hab auch irgendwie drauf spekuliert, dass jemand mit etwas Ahnung um die Ecke kommt und mir irgendeine Lösung, die ich nicht beherrsche an den Kopf wirft (wie groupplots oder so).

Wenn man etwas nicht beherrscht, dann liest man halt zunächst darüber und meldet sich gegebenenfalls mit einem Minimalbeispiel, um auftretende Probleme zu klären. Aber genau das bedurfte bei Dir ja bisher immer einer expliziten Aufforderung durch potentielle Helfer. Die Bibliothek `groupplots` von »pgfplots« ist in dessen Anleitung gut dokumentiert. Eine andere Möglichkeit, die Graphen in einer Art Matrix zu setzen, wäre durch »subcaption« (aus dem Bündel »caption«) gegeben.

DEVV
Forum-Fortgeschrittener
Forum-Fortgeschrittener

Beiträge: 89
Anmeldedatum: 31.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2019, 19:11     Titel: Re: Aller Anfang ist …
  Antworten mit Zitat      
Ratgeber hat Folgendes geschrieben:

Wenn man etwas nicht beherrscht, dann liest man halt zunächst darüber

Dem kann ich prinzipiell zustimmen. Allerdings gibt es Situationen, in denen die Wissenquelle zu umfangreich ist (wie bei groupplots z.B.) und dann baue ich lieber auf Erfahrung von Leuten, die das Paket schonmal verwendet haben und theoretisch wissen, was man damit anstellen kann, als ein Handbuch zu lesen.
Ratgeber hat Folgendes geschrieben:

Aber genau das bedurfte bei Dir ja bisher immer einer expliziten Aufforderung durch potentielle Helfer.

Immer ein Minimalbeispiel zu liefern ist auch nicht die Allzweckwaffe.
z.B. sehe ich keinen Sinn in einem Minimalbeispiel wenn:
1. Ich es nicht bauen kann, weil ich nicht weiß welche Eigenschaften meiner Vorlage Einflüsse auf den Effekt haben, den ich beobachte.
2. Man kein minimalbeispiel bennötigt um mir zu helfen (wie hier z.B.).

Wen es aus Prinzip stört, dass ich in solchen Fällen kein Minimalbeispiel liefer, der braucht mir halt nicht helfen. Dann sind wir alle glücklich und evtl. ist ja jemand trotzdem so nett und hilft mir ...

Ratgeber hat Folgendes geschrieben:

Die Bibliothek `groupplots` von »pgfplots« ist in dessen Anleitung gut dokumentiert.

Auch hier wieder sehe ich ein Forum als "Forum" indem man sich mit anderen Leuten mit ggf. mehr Erfahrung auszutauscht, ohne eine Anleitung lesen zu müssen. Von daher finde ich diesen Beitrag schon legitim. Ich habe ein Problem, beschreibe es, liefer ein Foto vom Ist-Zustand in der PDF und jeder, der eine Idee hat, wie man mein Problem lösen kann, kann mir helfen.
Private Nachricht senden Benutzer-Profile anzeigen

DEVV
Forum-Fortgeschrittener
Forum-Fortgeschrittener

Beiträge: 89
Anmeldedatum: 31.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2019, 19:54     Titel:
  Antworten mit Zitat      
So ich habe mir jetzt ohne viel Ahnung folgende Konfiguration zusammengesucht im Internet.
Allerdings sind die titles der nächsten Zeilen in den X-Achsenbeschriftungen der Zeilen zuvor.
Außerdem würde ich gerne die Y-Achsen-Beschriftung (Zahlen) auf beiden Seiten haben. Zusätzlich habe ich nicht gefunden, wie ich die Legende jetzt anzeigen lassen kann. Der Originale Graph sah vor, dass die 4 Kurven aus Graph 1 labels bekommen. Wenn ich das jetzt allerdings einfüge, hat der erste Graph eine eigene Legende.

Hokus Pokus:
Code

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\usepackage{amsmath,amsfonts,amssymb}
\usepackage{fullpage}
\usepackage{verbatim}

\usepackage{tikz,pgfplots}
\usepgfplotslibrary{groupplots}
\pgfplotsset{compat=1.6}
\usetikzlibrary{pgfplots.groupplots}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

   \begin{tikzpicture}[smooth]
      \begin{groupplot}[group style={group size=2 by 2}, grid=both, grid style=dashed]
         \nextgroupplot[title={\textbf{Durchsatz:} Erzeugung}, ylabel={Durchsatz [Mebibyte / Sekunde]}, xlabel={Elemente in der Datenstruktur [$\log_2(n)$]}]
          \addplot coordinates { (25.0,27.2706) (26.0,27.6152) (27.0,27.0114) (28.0,25.4822) (29.0,23.6201) (30.0,18.3911) };
         \addplot coordinates { (25.0,19.4066) (26.0,21.0439) (27.0,24.2483) (28.0,25.7858) (29.0,25.2643) (30.0,23.2176) (31.0,21.5053) };
         \addplot coordinates { (25.0,25.8846) (26.0,25.6254) (27.0,24.5522) (28.0,23.8694) (29.0,22.3375) (30.0,18.2088) };
         \addplot coordinates { (25.0,20.732) (26.0,22.2468) (27.0,25.0059) (28.0,26.3556) (29.0,24.6092) (30.0,22.1791) (31.0,20.697) };
         
         \nextgroupplot[title={\textbf{Durchsatz:} Vorgängeranfrage}, yticklabel pos=right, xlabel={Elemente in der Datenstruktur [$\log_2(n)$]}, ylabel={Durchsatz [Millionen Anfragen / Sekunde]}]

         \nextgroupplot[title={\textbf{Speicherplatz: } Nach Erzeugung}, xlabel={Elemente in der Datenstruktur [$\log_2(n)$]}, ylabel={Speicherverbrauch [Gigabyte]}]

         \nextgroupplot[title={\textbf{Speicherplatz: } Während Erzeugung}, yticklabel pos=right, xlabel={Elemente in der Datenstruktur [$\log_2(n)$]}, ylabel={Speicherverbrauch [Gigabyte]}]
         
         \legend{\(\sigma_r\),  \(\sigma_\phi\)}        
      \end{groupplot}
   \end{tikzpicture}

\end{document}

 
Private Nachricht senden Benutzer-Profile anzeigen

Bartman
Forum-Meister
Forum-Meister


Beiträge: 1941
Anmeldedatum: 16.07.09
Wohnort: Hessische Provinz
Version: ---
     Beitrag Verfasst am: 15.11.2019, 20:29     Titel:
  Antworten mit Zitat      
Du bekommst die Beschriftung für die x-Achsen auch, wenn Du die Option xlabel und deren Zuweisung den Optionen der Umgebung groupplot hinzufügst. Sie muss dann nicht mehr jedem \nextgroupplot-Befehl mitgegeben werden.

DEVV hat Folgendes geschrieben:
Allerdings sind die titles der nächsten Zeilen in den X-Achsenbeschriftungen der Zeilen zuvor.


Benutze die Option vertical sep.
Private Nachricht senden Benutzer-Profile anzeigen

DEVV
Forum-Fortgeschrittener
Forum-Fortgeschrittener

Beiträge: 89
Anmeldedatum: 31.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2019, 21:17     Titel:
  Antworten mit Zitat      
Okay ich hab die Option nicht im "group style" verwendet, sondern in den groupplot-Optionen.

€dit:
Weiß jemand wie ich die Breite der Plots oben so setze, dass das Tikzpicture nicht breiter als die Textbreite wird? Ich habe gerade das Problem, dass die Abbildung breiter als der Text ist.
Private Nachricht senden Benutzer-Profile anzeigen

Bartman
Forum-Meister
Forum-Meister


Beiträge: 1941
Anmeldedatum: 16.07.09
Wohnort: Hessische Provinz
Version: ---
     Beitrag Verfasst am: 15.11.2019, 23:46     Titel:
  Antworten mit Zitat      
Dein Beispiel erzeugt für den ersten Graph keine Legende. Dafür müsste der von Dir verwendete Befehl vor dem zweiten \nextgroupplot-Befehl stehen.

Du kannst mit einem Querverweis eine gemeinsame Legende erreichen:

Code
\documentclass{article}

%\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{fullpage}
\usepackage{pgfplots}
\usepackage{showframe}

\pgfplotsset{compat=1.16}
\usepgfplotslibrary{groupplots}

\begin{document}
\begin{figure}[htbp]
\centering
\textbf{normalverteilte Daten}\par\medskip
\begin{tikzpicture}[smooth]
   \begin{groupplot}[
      group style={
         group size=2 by 2,
         vertical sep=2cm
     
},
      grid=both,
      grid style=dashed,
      xlabel={Elemente in der Datenstruktur [$\log_2(n)$]
},
      width=.48\linewidth
   ]
   \nextgroupplot[
      title={\textbf{Durchsatz:} Erzeugung},
      ylabel={Durchsatz [Mebibyte / Sekunde]
},
      legend to name=named,% <- eingefügt
      legend columns=-1,
      legend entries={$\sigma_r$,$\sigma_\phi$}% Alternative zu \legend
   ]
   \addplot coordinates {
      (25.0,27.2706) (26.0,27.6152) (27.0,27.0114) (28.0,25.4822) (29.0,23.6201) (30.0,18.3911)
   
};
   \addplot coordinates {
      (25.0,19.4066) (26.0,21.0439) (27.0,24.2483) (28.0,25.7858) (29.0,25.2643) (30.0,23.2176) (31.0,21.5053)
   
};
   \addplot coordinates {
      (25.0,25.8846) (26.0,25.6254) (27.0,24.5522) (28.0,23.8694) (29.0,22.3375) (30.0,18.2088)
   
};
   \addplot coordinates {
      (25.0,20.732) (26.0,22.2468) (27.0,25.0059) (28.0,26.3556) (29.0,24.6092) (30.0,22.1791) (31.0,20.697)
   
};
   \nextgroupplot[
      title={\textbf{Durchsatz:} Vorgängeranfrage},
      yticklabel pos=right,
      ylabel={Durchsatz [Millionen Anfragen / Sekunde]
}
   ]
   \nextgroupplot[
      title={\textbf{Speicherplatz:} Nach Erzeugung},
      ylabel={Speicherverbrauch [Gigabyte]
}
   ]
   \nextgroupplot[
      title={\textbf{Speicherplatz:} Während Erzeugung},
      yticklabel pos=right,
      ylabel={Speicherverbrauch [Gigabyte]
}
   ]
   \end{groupplot}
   \path (group c1r2.south east) -- node [below=1cm] {\ref{named}} (group c2r2.south west);% <- eingefügt
\end{tikzpicture}
\end{figure}
\end{document}
Private Nachricht senden Benutzer-Profile anzeigen

DEVV
Forum-Fortgeschrittener
Forum-Fortgeschrittener

Beiträge: 89
Anmeldedatum: 31.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2019, 00:11     Titel:
  Antworten mit Zitat      
Das mit der Legende habe ich bereits gelöst. Interessant wäre noch
Zitat:

€dit:
Weiß jemand wie ich die Breite der Plots oben so setze, dass das Tikzpicture nicht breiter als die Textbreite wird? Ich habe gerade das Problem, dass die Abbildung breiter als der Text ist.


Hier einmal die aktuelle Version:
Code

% -*- mode: latex; mode: flyspell; ispell-local-dictionary: "en_US"; coding: utf-8; fill-column: 80 -*-

\documentclass[a4paper,11pt,twoside,ngerman,color]{book}

\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\usepackage{amsmath,amsfonts,amssymb}
\usepackage{fullpage}
\usepackage{verbatim}

\usepackage{tikz,pgfplots}
\usepgfplotslibrary{groupplots}
\usetikzlibrary{snakes,shapes,arrows,matrix,positioning}
\pgfplotsset{compat=1.6}
\usetikzlibrary{pgfplots.groupplots}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

\begin{figure}
   \begin{center}
      \begin{tikzpicture}
      \begin{groupplot}[group style={group name=myplot, group size=2 by 2, vertical sep=64pt, horizontal sep=12pt}, grid=both, grid style=dashed]
      \nextgroupplot[title={\textbf{Durchsatz:} Erzeugung}, ylabel={Durchsatz [Mebibyte / Sekunde]}, xlabel={Elemente in der Datenstruktur [$\log_2(n)$]}]
     
      \addplot coordinates { (25.0,27.2706) (26.0,27.6152) (27.0,27.0114) (28.0,25.4822) (29.0,23.6201) (30.0,18.3911) }; \label{plots:plot1}
      \addplot coordinates { (25.0,19.4066) (26.0,21.0439) (27.0,24.2483) (28.0,25.7858) (29.0,25.2643) (30.0,23.2176) (31.0,21.5053) }; \label{plots:plot2}
      \addplot coordinates { (25.0,25.8846) (26.0,25.6254) (27.0,24.5522) (28.0,23.8694) (29.0,22.3375) (30.0,18.2088) }; \label{plots:plot3}
      \addplot coordinates { (25.0,20.732) (26.0,22.2468) (27.0,25.0059) (28.0,26.3556) (29.0,24.6092) (30.0,22.1791) (31.0,20.697) }; \label{plots:plot4}
      \nextgroupplot[title={\textbf{Durchsatz:} Vorgängeranfrage}, yticklabel pos=right, xlabel={Elemente in der Datenstruktur [$\log_2(n)$]}, ylabel={Durchsatz [Millionen Anfragen / Sekunde]}]
      \addplot coordinates { (25.0,2.197) (26.0,2.06646) (27.0,1.97961) (28.0,1.8256) (29.0,1.56041) (30.0,0.776778) };
      \addplot coordinates { (25.0,3.15803) (26.0,2.24898) (27.0,2.12293) (28.0,1.98624) };
      \addplot coordinates { (25.0,2.14384) (26.0,2.06185) (27.0,1.98044) (28.0,1.8621) (29.0,1.75767) (30.0,0.845749) };
      \addplot coordinates { (25.0,3.00063) (26.0,2.43515) (27.0,2.11192) (28.0,2.04601) (31.0,0.887256) };
     
      \nextgroupplot[title={\textbf{Speicherplatz:} Nach Erzeugung}, xlabel={Elemente in der Datenstruktur [$\log_2(n)$]}, ylabel={Speicherverbrauch [Gigabyte]}]
     
      \addplot coordinates { (25.0,1.83424) (26.0,3.78422) (27.0,8.48936) (28.0,19.8347) (29.0,46.6281) (30.0,121.489) (31.0,254.124) };
      \addplot coordinates { (25.0,3.06541) (26.0,5.35606) (27.0,8.42623) (28.0,15.1457) (29.0,31.0536) (30.0,68.7423) (31.0,153.308) };
      \addplot coordinates { (25.0,1.80516) (26.0,3.71904) (27.0,8.28671) (28.0,19.1333) (29.0,44.2815) (30.0,114.652) (31.0,238.808) };
      \addplot coordinates { (25.0,2.82335) (26.0,4.98529) (27.0,8.04859) (28.0,14.6836) (29.0,30.0445) (30.0,65.7417) (31.0,143.733) };
     
      \nextgroupplot[title={\textbf{Speicherplatz:} Während Erzeugung}, yticklabel pos=right, xlabel={Elemente in der Datenstruktur [$\log_2(n)$]}, ylabel={Speicherverbrauch [Gigabyte]}]
     
      \addplot coordinates { (25.0,1.83424) (26.0,3.78422) (27.0,8.48936) (28.0,19.8347) (29.0,46.6281) (30.0,121.489) (31.0,254.124) };
      \addplot coordinates { (25.0,3.06541) (26.0,5.35606) (27.0,8.42623) (28.0,15.1457) (29.0,31.0536) (30.0,68.7423) (31.0,153.308) };
      \addplot coordinates { (25.0,1.80516) (26.0,3.71904) (27.0,8.28671) (28.0,19.1333) (29.0,44.2815) (30.0,114.652) (31.0,238.808) };
      \addplot coordinates { (25.0,2.82335) (26.0,4.98529) (27.0,8.04859) (28.0,14.6836) (29.0,30.0445) (30.0,65.7417) (31.0,143.733) };
     
      \end{groupplot}
      \path (myplot c1r1.outer north west)% plot in column 1 row 1
      -- node[anchor=south,rotate=90] {Gleichverteilung}% label midway
      (myplot c1r2.outer south west)% plot in column 1 row 4
      ;
     
      %Legend
      \path (myplot c1r1.north west|-current bounding box.north)--
      coordinate(legendpos)
      (myplot c2r1.north east|-current bounding box.north);
      \matrix[
      matrix of nodes,
      anchor=south,
      draw,
      inner sep=0.2em,
      draw
     
]at([yshift=1ex]legendpos)
      {
         \ref{plots:plot1
}& 1&[5pt]
         \ref{plots:plot2}&2&[5pt]
         \ref{plots:plot3}& 3&[5pt]
         \ref{plots:plot4}& 4\\
      };
      \end{tikzpicture}
     
      \caption{...}
      \label{plot:uniform_hm_u40}
   \end{center}
\end{figure}


\end{document}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 


Zuletzt bearbeitet von DEVV am 16.11.2019, 00:36, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen

Neues Thema eröffnen Neue Antwort erstellen Gehe zu Seite 1, 2  Weiter



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


  Datenschutzerklärung | Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2019 goLaTeX.de