Seite 1 von 1

Zeilenumbruch in Achsenbeschriftung Säulendiagramm

Verfasst: Mi 1. Mär 2017, 11:54
von Vaschan
Hallo zusammen,

ich habe ein Säulendiagramm, bei dem die Symbolachse sehr lange Titel erzeugt.

Wie kann ich einen Zeilenumbruch erzeugen dabei? Ohne Zeilenumbruch ist auf der linken Seite zu viel Platz.

Zusätzlich hätte ich die Frage, wie ich die "formkontur" um die Säulen wegbekommen kann. Diese muss aufgrund eines Druckproblemes weg.
\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 sehr langer text text text,Fenster,H\"ulle,Bodenplatte,Heizung},
    x tick label style={rotate=30,anchor=north east},
    ]

    \addplot[fill=green] coordinates {
      (Unrenoviert sehr langer text text text,220.6)
      (Fenster,219.26)
      (H\"ulle,197.67)
      (Bodenplatte,167.9)
      (Heizung,40)
    };
  \end{axis} 
\end{tikzpicture}
\end{document}
Minimalbeispiel ist von "http://texwelt.de/wissen/fragen/19284/s ... m-mit-tikz"

Verfasst: Mi 1. Mär 2017, 13:38
von esdd
Die Umrandung der Säulen bekommst Du weg, in dem Du draw=none zu den Plotoptionen hinzufügst:
\addplot[fill=green,draw=none] coordinates {...};
Einen Zeilenumbruch in den Ticklabels an der x-Achse wird ermöglicht, wenn eine Textbreite und Textausrichtung für diese angegeben wird, beispielsweise:
x tick label style={rotate=30,anchor=north east,
  text width=5cm,align=right
}
Eventuell ist es dann aber besser rotate=90,anchor=east zu verwenden:

\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 sehr langer text text text,Fenster,H\"ulle,Bodenplatte,Heizung}, 
     x tick label style={rotate=90,anchor=east,text width=5cm,align=right}, 
     ] 

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

Verfasst: Mi 1. Mär 2017, 14:24
von Vaschan
Perfekt, danke schön :D

Verfasst: Mi 1. Mär 2017, 14:38
von Bartman
@Vaschan
ylabel=$\mathrm{kWh/m^2a}$,
Ist das Einheitenzeichen a an dieser Stelle von Dir gewollt oder ein Tippfehler?

Statt \mathrm im mathematischen Modus darfst Du auch siunitx verwenden.

Verfasst: Mi 1. Mär 2017, 14:54
von markusv
Steht sicherlich fürs Jahr, also Kilowattstunden je Quadratmeter und Jahr. Ansonsten würde ich zur Verdeutlichung evtl. noch ein halbes Leerzeichen (\,) dazwischen setzen.