goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


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


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Diagramm mit Linien

 

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.10.2017, 23:55     Titel: Diagramm mit Linien
  Antworten mit Zitat      
Guten Abend

Ich würde gerne ein Diagramm mit Punkten und Linien erstellen, bekunde allerdings Mühe...

Kann mir jemand erklären, was ich falsch gemacht habe?

Code • Öffne in Overleaf
\documentclass[12pt,a4paper]{report}
\usepackage{pgfplotstable}
\pgfplotsset{compat=newest}
\usetikzlibrary{arrows.meta}
\definecolor{myorange2}{rgb}{1,0.3,0}  
\usepackage{caption}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\begin{document}
\noindent
\begin{minipage}{\linewidth}
\begin{tikzpicture}

\pgfplotstableread{
Jahr          I      II
{2008
}      102      3
{2009}     130    11
{2010}      156      6
{2011}      155      8
{2012}      173      12
{2013}      169    23
{2014}      169      26
{2015}      181      34
}{\data};

\begin{axis}[
  width=\textwidth,
  height=0.9,  
  axis lines=left,
  ylabel={Anzahl},  
  ytick={2,4,6,8},
 extra y tick style={grid=major,
            tick label style={xshift=-1cm
}},
  xlabel={Jahr},
  xtick={0,...,8},
 xticklabels={{2008},{2009},{2010},{2011},{2012},{2013},{2014},{2015}},  
  xtick label style={/pgf/number format/1000 sep=},
 
]
\addplot [fill=myorange2]table[x=Jahr, y=I]
\addplot [fill=black]table[x=Jahr, y=II]

\end{axis}
\end{tikzpicture}
\captionof{figure}{Text}
\end{minipage}
\vspace{0.75cm}

\end{document}

Bartman
Forum-Meister
Forum-Meister


Beiträge: 993
Anmeldedatum: 16.07.09
Wohnort: Hessische Provinz
Version: Windows 7 64 Bit MiKTeX 2.9 32-Bit
     Beitrag Verfasst am: 01.11.2017, 02:36     Titel:
  Antworten mit Zitat      
Dein Beispiel ist nicht lauffähig.

Meine Auslegung Deines Wunsches nach einem Diagramm mit Punkten und Linien:

Code • Öffne in Overleaf
\documentclass[12pt,a4paper]{report}
\usepackage{pgfplotstable}
\pgfplotsset{compat=newest}
\usetikzlibrary{arrows.meta}
\definecolor{myorange2}{rgb}{1,0.3,0}  
\usepackage{caption}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage{showframe}

\begin{document}
\blindtext

\begin{center}
\begin{minipage}{\linewidth}
\begin{tikzpicture}

\pgfplotstableread{
Jahr          I      II
{2008
}      102      3
{2009}     130    11
{2010}      156      6
{2011}      155      8
{2012}      173      12
{2013}      169    23
{2014}      169      26
{2015}      181      34
}{\data}

\begin{axis}[
  width=.95\textwidth,% <- geändert  
  height=9cm,% <- geändert  
  axis lines=left,
  ylabel={Anzahl},  
%  ytick={2,4,6,8},
  grid=major,
  xlabel={Jahr},
%  xtick={0,...,8},
% xticklabels={{2008},{2009},{2010},{2011},{2012},{2013},{2014},{2015}},  
  xticklabel style={/pgf/number format/1000 sep=}% <- Leerzeichen entfernt
]
\addplot [myorange2, mark=*] table [x=Jahr, y=I] {\data};% <- ergänzt
\addplot [mark=*] table [x=Jahr, y=II] {\data};% <- ergänzt
\end{axis}
\end{tikzpicture}
\captionof{figure}{Text}
\end{minipage}
\end{center}

\blindtext
\end{document}
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2017, 07:49     Titel:
  Antworten mit Zitat      
Das sieht ja wunderbar aus! Vielen Dank für die rasche Hilfe. Smile
Nun habe ich allerdings noch eine kleine Frage:
Da die Anzahl von I viel grösser ist als bei II, würde ich gerne zwei y-Achsen (ein noch rechts) verwenden.

Wie ist das möglich?
Habe es auf verschiedene Arten versucht, aber die Datei war dann nicht mehr lauffähig...

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2017, 07:56     Titel:
  Antworten mit Zitat      
Wenn ich die Grafik in meine Arbeit übernehme, werden leider auch halbe Jahreszahlen angegeben. Also 2009.5, 2010.5

An was könnte das liegen?

Beinschuss
Forum-Meister
Forum-Meister

Beiträge: 776
Anmeldedatum: 02.10.12
Wohnort: NRW
Version: MiKTeX, Windows 10, TeXstudio
     Beitrag Verfasst am: 01.11.2017, 09:56     Titel:
  Antworten mit Zitat      
Anonymous hat Folgendes geschrieben:
Wenn ich die Grafik in meine Arbeit übernehme, werden leider auch halbe Jahreszahlen angegeben. Also 2009.5, 2010.5 An was könnte das liegen?

Das kann ich reproduzieren, wenn ich z.B. die Dokumentklasse von report auf scrreprt ändere und dadurch die Textweite größer wird. Dadurch bekommt das Diagramm auch mehr Raum. Workaround: Passe den Wert für die Breite des Diagramms an, z.B.
Code • Öffne in Overleaf
  width=.85\textwidth,% <- geändert  
Private Nachricht senden Benutzer-Profile anzeigen

markusv
Forum-Guru
Forum-Guru

Beiträge: 373
Anmeldedatum: 03.09.15
Wohnort: Leipzig
Version: ---
     Beitrag Verfasst am: 01.11.2017, 10:09     Titel:
  Antworten mit Zitat      
Option xtick=data sollte das Problem (auch) beheben:

Code • Öffne in Overleaf
\documentclass[12pt,a4paper]{scrreprt}
\usepackage{pgfplotstable}
\pgfplotsset{compat=newest}
\usetikzlibrary{arrows.meta}
\definecolor{myorange2}{rgb}{1,0.3,0}  
\usepackage{caption}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage{showframe}

\begin{document}
\blindtext

\begin{center}
\begin{minipage}{\linewidth}
\begin{tikzpicture}

\pgfplotstableread{
Jahr          I      II
{2008
}      102      3
{2009}     130    11
{2010}      156      6
{2011}      155      8
{2012}      173      12
{2013}      169    23
{2014}      169      26
{2015}      181      34
}{\data}

\begin{axis}[
  width=.95\textwidth,
  height=9cm,
  axis lines=left,
  ylabel={Anzahl},  
  grid=major,
  xlabel={Jahr},
  xtick=data,% <- ergänzt
  xticklabel style={/pgf/number format/1000 sep=}
]
\addplot [myorange2, mark=*] table [x=Jahr, y=I] {\data};
\addplot [mark=*] table [x=Jahr, y=II] {\data};
\end{axis}
\end{tikzpicture}
\captionof{figure}{Text}
\end{minipage}
\end{center}

\blindtext
\end{document}

_________________

Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Books heißen.

Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen:
Help-LaTeX@web.de
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2017, 12:45     Titel:
  Antworten mit Zitat      
Vielen Dank für die Tipps. Das funktioniert soweit.
Da die Anzahl von I viel grösser ist als bei II, würde ich gerne zwei y-Achsen (ein noch rechts) verwenden.

Wie ist das möglich?
Habe es auf verschiedene Arten versucht, aber die Datei war dann nicht mehr lauffähig...

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2017, 12:48     Titel:
  Antworten mit Zitat      
Zitat:
Da die Anzahl von I viel grösser ist als bei II, würde ich gerne zwei y-Achsen (ein noch rechts) verwenden.


Dabei soll die Linie von I sich nach der linken Achse und die Linie II nach der rechten Achse richten.

Natürlich müsste die linke Achse dann mit I und die rechte Achse mit II beschriftet werden.
Kann mir da jemand helfen?

Bartman
Forum-Meister
Forum-Meister


Beiträge: 993
Anmeldedatum: 16.07.09
Wohnort: Hessische Provinz
Version: Windows 7 64 Bit MiKTeX 2.9 32-Bit
     Beitrag Verfasst am: 01.11.2017, 12:55     Titel:
  Antworten mit Zitat      
Anonymous hat Folgendes geschrieben:
Da die Anzahl von I viel grösser ist als bei II, würde ich gerne zwei y-Achsen (ein noch rechts) verwenden.


Code • Öffne in Overleaf
\documentclass[fontsize=12pt]{scrreprt}
\usepackage{pgfplotstable}
\pgfplotsset{compat=newest}
\usetikzlibrary{arrows.meta}
\definecolor{myorange2}{rgb}{1,0.3,0}  
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage{showframe}

\begin{document}
\blindtext

\begin{center}
\begin{minipage}{\linewidth}
\begin{tikzpicture}
\pgfplotsset{
   set layers,
   scale only axis,
   width=.8\textwidth,
   height=9cm
}
\pgfplotstableread{
Jahr          I      II
{2008
}      102      3
{2009}     130    11
{2010}      156      6
{2011}      155      8
{2012}      173      12
{2013}      169    23
{2014}      169      26
{2015}      181      34
}{\data}

\begin{axis}[
  axis lines=left,
  ylabel={Anzahl (I)},  
  xlabel={Jahr},
  xtick=data,
  xticklabel style={/pgf/number format/1000 sep=}
]
\addplot [myorange2, mark=*] table [x=Jahr, y=I] {\data};
\end{axis}
\begin{axis}[
  axis lines=right,
  ylabel={Anzahl (II)},  
  xlabel={Jahr},
  axis x line=none
]
\addplot [mark=*] table [x=Jahr, y=II] {\data};
\end{axis}
\end{tikzpicture}
\captionof{figure}{Text}
\end{minipage}
\end{center}

\blindtext
\end{document}


Ich habe in meinem Beispiel grid=major absichtlich entfernt, weil ich die Anzeige für beide y-Achsen verwirrend finde.
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2017, 18:27     Titel:
  Antworten mit Zitat      
Hallo Bartmann

Vielen Dank!

Nun noch eine letzte Frage, hoffe ich zumindest:
Ich habe die Beschriftungsfarbe geändert. Wie kann ich auch die Farbe der Zahlen ändern (zugehörige Zahlen zu I)?
Habe es leider nicht hinbekommen.

Code • Öffne in Overleaf
\documentclass[fontsize=12pt]{scrreprt}
\usepackage{pgfplotstable}
\pgfplotsset{compat=newest}
\usetikzlibrary{arrows.meta}
\definecolor{myorange2}{rgb}{1,0.3,0}  
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage{showframe}

\begin{document}
\blindtext

   \begin{center}
\begin{minipage}{\linewidth}
\begin{tikzpicture}
\pgfplotsset{
   set layers,
   scale only axis,
   width=.8\textwidth,
   height=9cm
}
\pgfplotstableread{
Jahr          I      II
{2008
}      102      3
{2009}     130    11
{2010}      156      6
{2011}      155      8
{2012}      173      12
{2013}      169    23
{2014}      169      26
{2015}      181      34
}{\data}

\begin{axis}[
  axis lines=left,
  ylabel=\textcolor{myorange2}{Anzahl (I)},  
  xlabel={Jahr},
  xtick=data,
  xticklabel style={/pgf/number format/1000 sep=}
]
\addplot [myorange2, mark=*] table [x=Jahr, y=I] {\data};
\end{axis}
\begin{axis}[
  axis lines=right,
  ylabel={Anzahl (II)},  
  xlabel={Jahr},
  axis x line=none
]
\addplot [mark=*] table [x=Jahr, y=II] {\data};
\end{axis}
\end{tikzpicture}
\captionof{figure}{Text}
\end{minipage}
\end{center}

\blindtext
\end{document}

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 goPCB.de


  Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2017 goLaTeX.de