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, 11:49

Huesselmann's gravatar image

Huesselmann
11112
Akzeptiert-Rate: 0%

bearbeitet 05 Jan '17, 11:26

stefan's gravatar image

stefan ♦♦
18.3k163148

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, 12: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, 13: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, 21:37

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

bearbeitet 05 Jan '17, 11:27

stefan's gravatar image

stefan ♦♦
18.3k163148

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×730
×298
×54
×28

gestellte Frage: 28 Dez '16, 11:49

Frage wurde gesehen: 21,256 Mal

zuletzt geändert: 05 Jan '17, 11:27