Hallo Zusammen,

ich arbeite noch nicht lange mit LaTeX und versuche gerade ein Säulendiagramm zu erstellen. Hierzu habe ich 2 verschiedene Herangehensweisen versucht, welche mir aber jeweils Probleme machen. Wenn ich mit das Diagramm mit TikZ erstelle, welches mir vom Layout her sehr gut gefällt bekomme ich es leider nicht hin die y-Achse mit den gewünschten Werten zu beschriften (diese wären 100,200,300).

Erstelle ich mein Problem mit pgfplots, so schneiden die Hilfslinien meine Balken und bei Rotation der x-Achsenbeschriftung verschiebt sich diese.

Öffne in Overleaf
\begin{figure}
\begin{tikzpicture}
\centering 
%\newcommand{\balkenbreite}{10pt} 
\begin{axis}[ybar, 
    bar width=20pt, % Balken gestapelt 
    % ursprüngliche y-Werte unterhalb der Balken: 
   nodes near coords,nodes near coords align=above,point meta=rawy, 
    axis x line=bottom, axis y line=left,% Achsen nur unten und links
    ylabel=$kWh/m^2a$, % Beschriftung der Achsen 
    ymin=0,
    ytick={0,50,100,150,200,250,300},% minimaler y-Wert ist 0  
    enlargelimits=auto,% Vergrößern der Ränder des Diagramms 
    % Ausgabe der x Werte ohne Tausendermarkierung@ 
    xlabel= Sanierter Geb\"audeteil,
    symbolic x coords ={0,Unrenoviert,Fenster,H\"ulle,Bodenplatte,Heizung,8},
    x tick label style={rotate=90}]
\addplot[fill=green] coordinates {(Unrenoviert,220.6)(Fenster,219.26)(H\"ulle,197.67)(Bodenplatte,167.9)(Heizung,40)};
\draw[very thin,color=gray]({axis cs:0,50}) -- ({axis cs:8,50});
\draw[very thin,color=gray]({axis cs:0,100}) -- ({axis cs:8,100});
\draw[very thin,color=gray]({axis cs:0,150}) -- ({axis cs:8,150});
\draw[very thin,color=gray]({axis cs:0,200}) -- ({axis cs:8,200});
\draw[very thin,color=gray]({axis cs:0,250}) -- ({axis cs:8,250});
\end{axis} 
\end{tikzpicture} 
\end{figure}

\begin{tikzpicture}
\draw(0cm, 0cm) -- (10cm, 0cm); %Abzisse
\draw (0cm, 0cm) -- (0cm, -0.1cm);
\draw (10cm, 0cm) -- (10cm, -0.1cm);

\draw(-0.1cm, 0cm) -- (-0.1cm, 3.5cm); %Ordinate
\draw(-0.1cm, 0cm) -- (-0.2cm, 0cm);
\draw(-0.1cm, 3.5cm) -- (-0.1cm, 3.5cm) node [left] {$10^1 kWh/m^2$};

\foreach \x in {10,20,30} %Hilfslinien
    \draw[gray!50, text=black] (-0.2 cm,\x mm) -- (10 cm,\x mm) 
    node at (-0.5 cm,\x mm){\x}; %Beschriftung der Hilfslinien

    \node at (4.5cm,4cm) {Primärenergieverbrauch pro Quadratmeter}; %Überschrift

\foreach \x/\y/\Verbrauch/\z/\v in {10/22.026/Unrenoviert/220.6/50,
                              25/21.926/Fenster/219.26/75,
                              40/19.767/Hülle gedämmt/197.67/100,
                              55/16.79/Bodenplatte gedämmt/167.9/125,
                              70/4/RLT neu/40/150,
                              85/4/Heizung neu/40/175}
                              {

        \draw[fill=green] (\x mm,0cm) rectangle (0.95cm+\x mm,\y mm) node at (0.65cm + \x mm,\y mm + 0.3cm) {\z}; %die Säulen
        \node[rotate=45, left] at (0.6cm +\x mm,-0.1cm) {\Verbrauch}; %Säulenbeschriftung
        };          
\end{tikzpicture}

gefragt 28 Dez '16, 05:49

Huesselmann's gravatar image

Huesselmann
111
Akzeptiert: 0%

bearbeitet 05 Jan, 05:26

stefan's gravatar image

stefan ♦♦
5.9k12234

Willkommen im Forum! Ich habe den Code aus Deiner "Antwort" in die Frage übertragen. Du kannst gern stets direkt die Frage editieren und Zusätze einfügen. Hier sind Antworten stets "echte" Antworten, keine Gespräche oder Rückfragen oder Zusatzinfos, sondern Lösungen. Editieren der Frage ist jederzeit möglich und erwünscht. Das verbessert die Übersicht erheblich für die Archivierung der Lösungen. Ungewohnt und anders als in Webforen, doch innovativ und nutzbarer. Bemerkungen gern wie hier als Kommentare.

(28 Dez '16, 06:36) stefan ♦♦

Könntest Du bitte Deinen Codeausschnitt zu einem Minimalbeispiel erweitern? Also einem möglichst kurzen, aber komplettes Dokument, von \documentclass{...} bis zu \end{document}, welches das Problem zeigt. Das vereinfacht die Bearbeitung erheblich und ist meist eine Garantie für eine Lösung. Darüber hinaus spielen bei pgfplots ggf. auch die verwendeten Einstellungen eine Rolle. Für den Online-Editor-Link wäre es auch gut.

(28 Dez '16, 07:38) saputello

Ich würde die pgfplots-Variante wählen.

bei Rotation der x-Achsenbeschriftung verschiebt sich diese.

Das verstehe ich nicht. Vielleicht nicht um 90 Grad rotieren? Ich habe mal rotate=30,anchor=north east gewählt.

so schneiden die Hilfslinien meine Balken

Ich würde die Hilfslinien gar nicht selbst malen, sondern das Grid verwenden.

Öffne in Overleaf
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{
  compat=1.13,
}
\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    ybar,
    bar width=20pt,
    %
    nodes near coords,
    nodes near coords align=above,
    point meta=rawy,
    %
    axis x line=bottom,
    axis y line=left,
    ymajorgrids=true,
    %
    ylabel=$\mathrm{kWh/m^2a}$,
    ymin=0,
    ytick={0,50,100,150,200,250,300},
    enlargelimits=auto,
    %
    xlabel= Sanierter Geb\"audeteil,
    symbolic x coords ={Unrenoviert,Fenster,H\"ulle,Bodenplatte,Heizung},
    x tick label style={rotate=30,anchor=north east},
    ]

    \addplot[fill=green] coordinates {
      (Unrenoviert,220.6)
      (Fenster,219.26)
      (H\"ulle,197.67)
      (Bodenplatte,167.9)
      (Heizung,40)
    };
  \end{axis} 
\end{tikzpicture}
\end{document}

Säulendiagramm

Permanenter link

beantwortet 28 Dez '16, 15:37

Henri's gravatar image

Henri
10.7k42030

bearbeitet 05 Jan, 05:27

stefan's gravatar image

stefan ♦♦
5.9k12234

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×509
×187
×31
×22

Frage gestellt: 28 Dez '16, 05:49

Frage wurde angeschaut: 673 Mal

Zuletzt aktualisiert: 05 Jan, 05:27