Zeilenumbruch in Achsenbeschriftung Säulendiagramm

Tabellen und Grafiken erstellen und anordnen


Vaschan
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 68
Registriert: So 8. Mai 2016, 12:35

Zeilenumbruch in Achsenbeschriftung Säulendiagramm

Beitrag 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"

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag 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}

Vaschan
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 68
Registriert: So 8. Mai 2016, 12:35

Beitrag von Vaschan »

Perfekt, danke schön :D

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag 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.

markusv
Forum-Meister
Forum-Meister
Beiträge: 947
Registriert: Do 3. Sep 2015, 17:20
Wohnort: Leipzig

Beitrag 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.
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

Antworten