goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


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


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Säulendiagramm Tikz

 

Leilamartin
Forum-Newbie
Forum-Newbie

Beiträge: 7
Anmeldedatum: 24.11.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.11.2017, 11:09     Titel: Säulendiagramm Tikz
  Antworten mit Zitat      
Hallo liebes Forum,

ich benötige einige Säulendiagramme und habe mich im Forum etwas Schlau gemacht und kann mit Tiks nun so was malen:

Code • Öffne in Overleaf

\documentclass{scrbook}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{pgfplots}
\pgfplotsset{
  compat=1.13,
}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    ybar,
    bar width=20pt,
    nodes near coords,
    symbolic x coords ={Unterschicht,Arbeiterschicht,Mittelschicht,obere Mittelschicht, Oberschicht,Einstufung abgelehnt},
    x tick label style={rotate=45,anchor=north east},
   
]
    \addplot[fill=black] coordinates {
      (Unterschicht,1)
      (Arbeiterschicht,1)
      (Mittelschicht,3)
      (obere Mittelschicht,0)
      (Oberschicht,1)
      (Einstufung abgelehnt,1)
   
};
  \end{axis}
\end{tikzpicture}
\end{document}
 


Ich bin schon fast zufrieden und würde mich freuen, wenn ihr mir bei folgenden Fragen helfen könnten:

a) Wie bekomme ich die Box, die um das ganze Diagramm geht weg? Und auch die y-Achse soll weg.
b) Wie bekomme ich eine x-Achse hin? (Eine x-Achse ohne Pfeil nach rechts)
c) Was ist die sinnvollste Art, den Säulen unterschiedliche Farben zu geben? (Die Säule rechts soll ohne Füllung bzw. weiß sein)
d) Wie mache ich sinnvoll eine Überschrift über das Diagramm?
e) Ist das "guter" Tikz-Stil oder gibt es eine elegantere Möglichkeit, Säulendiagramme zu erstellen?

Besten Dank für eure Hilfe und liebe Grüße

Laila
Private Nachricht senden Benutzer-Profile anzeigen

markusv
Forum-Guru
Forum-Guru

Beiträge: 417
Anmeldedatum: 03.09.15
Wohnort: Leipzig
Version: ---
     Beitrag Verfasst am: 24.11.2017, 11:35     Titel:
  Antworten mit Zitat      
Hallo nochmal Smile

Code • Öffne in Overleaf
\documentclass{scrbook}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{pgfplots}
\pgfplotsset{
  compat=1.13,
}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    ybar,
    hide y axis,%keine y-Achse
    axis x line = bottom,%x-Achse nur unten
    enlarge x limits = .1,%x-Achse erweitern
    x axis line style = {-},%kein Pfeil
    bar width=20pt,
    nodes near coords,
    title = {Sinnvolle Überschrift},%Diagramm-Titel
    symbolic x coords ={Unterschicht,Arbeiterschicht,Mittelschicht,obere Mittelschicht, Oberschicht,Einstufung abgelehnt},
    x tick label style={rotate=45,anchor=north east},
    ]
    \addplot[fill=black,forget plot] coordinates {%forget plot ergänzt für korrekten Abstand zum "2." plot
      (Unterschicht,1)
      (Arbeiterschicht,1)
      (Mittelschicht,3)
      (obere Mittelschicht,0)
      (Oberschicht,1)
    };
    \addplot[fill=white] coordinates {
      (Einstufung abgelehnt,1)
   
};
  \end{axis}
\end{tikzpicture}
\end{document}

_________________

Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Book 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

Leilamartin
Forum-Newbie
Forum-Newbie

Beiträge: 7
Anmeldedatum: 24.11.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.11.2017, 11:39     Titel:
  Antworten mit Zitat      
Boah! Danke für die schnelle Antwort. Das ist ja ein Traum.

Noch eine kurze Nachfrage: Wie kann ich die x-Achse nach oben schieben, sodass die Säulen direkt aus der x-Achse rauswachsen?

Und nochmals vielen lieben Dank. Dass mir wildfremde Menschen "einfach so" und dann auch noch so ausführlich und kompetent helfen, beeindruckt mich wirklich. Danke!
Private Nachricht senden Benutzer-Profile anzeigen

markusv
Forum-Guru
Forum-Guru

Beiträge: 417
Anmeldedatum: 03.09.15
Wohnort: Leipzig
Version: ---
     Beitrag Verfasst am: 24.11.2017, 11:53     Titel:
  Antworten mit Zitat      
Leilamartin hat Folgendes geschrieben:
Dass mir wildfremde Menschen "einfach so" und dann auch noch so ausführlich und kompetent helfen, beeindruckt mich wirklich. Danke!
Das ist ja der Sinn der Sache. Und als Helfer lernt man ja auch immer noch was nebenbei. Keiner Rede wert also! Smile

Du kannst den Abstand per enlarge y limits={.1,upper}, einstellen. Das upper sorgt dafür, dass der Abstand nur oben wirkt, unten erhältst du damit den gewünschten Effekt. Ohne den Abstand oben enlarge y limits={}, oder {0} rutscht die Überschrift unschön in das Diagramm bzw. die Beschriftung.

Im gesamten:
Code • Öffne in Overleaf

\documentclass{scrbook}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{pgfplots}
\pgfplotsset{
  compat=1.13,
}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    ybar,
    hide y axis,%keine y-Achse
    axis x line* = bottom,%x-Achse nur unten
    enlarge x limits = .1,%x-Achse erweitern
    x axis line style = {-},%kein Pfeil
    enlarge y limits={.1,upper},%Anpassung des Abstandes x-Achse - Diagramm
    bar width=20pt,
    nodes near coords,
    title = {Sinnvolle Überschrift},%Diagramm-Titel
    symbolic x coords ={Unterschicht,Arbeiterschicht,Mittelschicht,obere Mittelschicht, Oberschicht,Einstufung abgelehnt},
    x tick label style={rotate=45,anchor=north east},
    ]
    \addplot[fill=black,forget plot] coordinates {%forget plot ergänzt für korrekten Abstand zum "2." plot
      (Unterschicht,1)
      (Arbeiterschicht,1)
      (Mittelschicht,3)
      (obere Mittelschicht,0)
      (Oberschicht,1)
    };
    \addplot[fill=white] coordinates {
      (Einstufung abgelehnt,1)
   
};
  \end{axis}
\end{tikzpicture}
\end{document}
 

_________________

Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Book 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

Leilamartin
Forum-Newbie
Forum-Newbie

Beiträge: 7
Anmeldedatum: 24.11.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.11.2017, 11:56     Titel:
  Antworten mit Zitat      
Danke! Das freut mich sehr. LG und schönen Tag
Private Nachricht senden Benutzer-Profile anzeigen

Leilamartin
Forum-Newbie
Forum-Newbie

Beiträge: 7
Anmeldedatum: 24.11.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.11.2017, 12:21     Titel:
  Antworten mit Zitat      
Sorry, jetzt habe ich doch noch zwei Rückfragen.

1.) Es geschehen seltsame Dinge, wenn ich die Anzahl der Säulen verändere.

Schmeiße ich eine Säule (bspw. die Unterschicht) raus, ist alles fein:

Code • Öffne in Overleaf


\documentclass{scrbook}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{pgfplots}
\pgfplotsset{
  compat=1.13,
}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    ybar,
    hide y axis,%keine y-Achse
    axis x line* = bottom,%x-Achse nur unten
    enlarge x limits = .1,%x-Achse erweitern
    x axis line style = {-},%kein Pfeil
    enlarge y limits={.1,upper},%Anpassung des Abstandes x-Achse - Diagramm
    bar width=20pt,
    nodes near coords,
    title = {Sinnvolle Überschrift},%Diagramm-Titel
    symbolic x coords ={
    %Unterschicht,
    Arbeiterschicht,
    Mittelschicht,
    obere Mittelschicht,
    Oberschicht,
    Einstufung abgelehnt
    },
    x tick label style={rotate=45,anchor=north east},
    ]
    \addplot[fill=black,forget plot] coordinates {%forget plot ergänzt für korrekten Abstand zum "2." plot
    %  (Unterschicht,1)
      (Arbeiterschicht,1)
      (Mittelschicht,3)
      (obere Mittelschicht,0)
     (Oberschicht,1)
    };
    \addplot[fill=white] coordinates {
      (Einstufung abgelehnt,1)
   
};
  \end{axis}
\end{tikzpicture}
\end{document}
 


Schmeißt ich zwei Säulen raus, dann passieren komische Dinge. Die x-Achse bekommt Dopplungen bei den Labels:

Code • Öffne in Overleaf


\documentclass{scrbook}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{pgfplots}
\pgfplotsset{
  compat=1.13,
}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    ybar,
    hide y axis,%keine y-Achse
    axis x line* = bottom,%x-Achse nur unten
    enlarge x limits = .1,%x-Achse erweitern
    x axis line style = {-},%kein Pfeil
    enlarge y limits={.1,upper},%Anpassung des Abstandes x-Achse - Diagramm
    bar width=20pt,
    nodes near coords,
    title = {Sinnvolle Überschrift},%Diagramm-Titel
    symbolic x coords ={
    %Unterschicht,
    %Arbeiterschicht,
    Mittelschicht,
    obere Mittelschicht,
    Oberschicht,
    Einstufung abgelehnt
    },
    x tick label style={rotate=45,anchor=north east},
    ]
    \addplot[fill=black,forget plot] coordinates {%forget plot ergänzt für korrekten Abstand zum "2." plot
    %  (Unterschicht,1)
    %  (Arbeiterschicht,1)
      (Mittelschicht,3)
      (obere Mittelschicht,0)
     (Oberschicht,1)
    };
    \addplot[fill=white] coordinates {
      (Einstufung abgelehnt,1)
   
};
  \end{axis}
\end{tikzpicture}
\end{document}

 


2.) Wie kann ich bewirken, dass die Säulen stets so hoch sind, wie ihr numerischer Wert ist? Also so sollte es nicht aussehen (das passiert, da es keine 0 mehr gab):

Code • Öffne in Overleaf


\documentclass{scrbook}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{pgfplots}
\pgfplotsset{
  compat=1.13,
}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    ybar,
    hide y axis,%keine y-Achse
    axis x line* = bottom,%x-Achse nur unten
    enlarge x limits = .1,%x-Achse erweitern
    x axis line style = {-},%kein Pfeil
    enlarge y limits={.1,upper},%Anpassung des Abstandes x-Achse - Diagramm
    bar width=20pt,
    nodes near coords,
    title = {Sinnvolle Überschrift},%Diagramm-Titel
    symbolic x coords ={
    Unterschicht,
    Arbeiterschicht,
    Mittelschicht,
    obere Mittelschicht,
    Oberschicht,
    Einstufung abgelehnt
   
},
    x tick label style={rotate=45,anchor=north east},
    ]
    \addplot[fill=black,forget plot] coordinates {%forget plot ergänzt für korrekten Abstand zum "2." plot
      (Unterschicht,1)
      (Arbeiterschicht,1)
      (Mittelschicht,3)
      (obere Mittelschicht,4) %%<- hier war "früher" eine 0
     (Oberschicht,1)
    };
    \addplot[fill=white] coordinates {
      (Einstufung abgelehnt,1)
   
};
  \end{axis}
\end{tikzpicture}
\end{document}

 


Und nochmals Danke! Wink
Private Nachricht senden Benutzer-Profile anzeigen

esdd
Forum-Meister
Forum-Meister

Beiträge: 2237
Anmeldedatum: 07.02.10
Wohnort: Stutensee
Version: MiKTeX 2.9
     Beitrag Verfasst am: 24.11.2017, 13:15     Titel:
  Antworten mit Zitat      
Du kannst beispeilsweise xtick=data ergänzen. Das zweite Problem kannst Du durch Angabe von ymin=0 beheben. Beide Angaben gehören in die axis Optionen.
Private Nachricht senden Benutzer-Profile anzeigen

Leilamartin
Forum-Newbie
Forum-Newbie

Beiträge: 7
Anmeldedatum: 24.11.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.11.2017, 15:13     Titel:
  Antworten mit Zitat      
Danke! Funktioniert einwandfrei. 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