Bei einer anderen Frage bekam ich tolle Hilfe beim Erstellen dieses Bildes:
Eigentlich sieht es so aus, wie es sollte, aber es gibt noch zwei weitere Dinge, die ich klarstellen möchte:
zuerst, erhalte ich diese Warnung: Axis range for axis x is approximately empty; enlarging it (it is [0.0:0.0])
. Ich habe versucht, den Bereich zu bestimmen, kann aber keinen Wert für xmax finden, bei dem alle Balken weiterhin sichtbar bleiben.
Undzweitens, wie kann ich die Position des Bildes bestimmen? zB linksbündig? Jegliche Versuche mit \flushleft und \raggedright endeten erfolglos.
Mir ist etwas aufgefallen, als ich Strg+Klick gedrückt habe \end{axis}
: Ich schätze, da läuft etwas schief. Ich habe keine Ahnung, was dort jenseits der Grenze passiert ...
\documentclass[paper=a4, parskip=half-, draft]{scrreprt}
\tolerance=2000
\emergencystretch=1em
\hfuzz=2pt
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenx}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{pgfplots}
\usetikzlibrary{shapes,arrows,positioning,shadows,trees}
\pgfplotsset{compat=1.7} %bestimmt exakte version zur gleichen
\setlength{\parindent}{0pt}
\begin{document}
\begin{figure}[!h]
\begin{tikzpicture}[scale=0.8]
\begin{axis}[
title=\textbf{Aus welchen Gründen wurde eLearning in Ihrem Klinikum implementiert?},
ybar=15, %Abstand zwischen den Balken
ymin=0,
ymax=50, %maximale Diagrammhöhe
xmin=0,
xmax=,
%ymajorgrids, %Horizontale Guidelines
bar width=30pt, %Balkenbreite
xtick=\empty, %keine kleinen Striche auf x achse
nodes near coords={\pgfmathprintnumber\pgfplotspointmeta \%}, %Fügt Prozent an
nodes near coords align={vertical},
legend style={
legend pos=outer north east,
row sep=10pt,
/tikz/nodes={text width=135pt,text depth=}
}]
\addplot coordinates{(0,31.1)};
\addlegendentry{Aufgrund der gesetzlichen Nachweispflicht (Brandschutz, Arbeitsschutz, etc.)}
\addplot coordinates{ (0,17.8)};
\addlegendentry{Einweisung zur Nutzung medizinischer Geräte}
\addplot coordinates{ (0,44.4)};
\addlegendentry{Zur generellen zeit- und ortsungebundenen Weiterbildung von Mitarbeitern}
\addplot coordinates{ (0,6.7)};
\addlegendentry{Sonstige}
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}
Ich freue mich über jede Hilfe!
Antwort1
Erstens: Sie können die Warnung ignorieren oder xmin
und xmax
symmetrisch auf setzen 0
. Beispiel: xmin=-1
und xmax=1
.
Zweitens: Der Begrenzungsrahmen Ihres Bildes wird durch den langen Plottitel nach links vergrößert. Damit \raggedright
ist der Plottitel linksbündig ausgerichtet. Sie müssen also die Position des Plottitels ändern.
Code:
\documentclass[paper=a4, parskip=half-, draft]{scrreprt}
\usepackage{showframe}% show the page layout
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenx}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{pgfplots}
\pgfplotsset{compat=1.7} %bestimmt exakte version zur gleichen
%\setlength{\parindent}{0pt}% <- not needed because you use parskip=half- option
\begin{document}
\begin{figure}[!h]
\begin{tikzpicture}[scale=0.8]
\begin{axis}[
title=\textbf{Aus welchen Gründen wurde eLearning in Ihrem Klinikum implementiert?},
title style={at={(0,1)},anchor=south west,inner xsep=0pt},% <- added
ybar=15, %Abstand zwischen den Balken
ymin=0,
ymax=50, %maximale Diagrammhöhe
xmin=-1,% <-changed
xmax=1,% <- changed
%ymajorgrids, %Horizontale Guidelines
bar width=30pt, %Balkenbreite
xtick=\empty, %keine kleinen Striche auf x achse
nodes near coords={\pgfmathprintnumber\pgfplotspointmeta \%}, %Fügt Prozent an
nodes near coords align={vertical},
legend style={
legend pos=outer north east,
row sep=10pt,
/tikz/nodes={text width=135pt,text depth=}
}]
\addplot coordinates{(0,31.1)};
\addlegendentry{Aufgrund der gesetzlichen Nachweispflicht (Brandschutz, Arbeitsschutz, etc.)}
\addplot coordinates{ (0,17.8)};
\addlegendentry{Einweisung zur Nutzung medizinischer Geräte}
\addplot coordinates{ (0,44.4)};
\addlegendentry{Zur generellen zeit- und ortsungebundenen Weiterbildung von Mitarbeitern}
\addplot coordinates{ (0,6.7)};
\addlegendentry{Sonstige}
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}
Oder wenn der Plottitel zentriert auf dem Plot stehen sollUndLegende
Code:
\documentclass[paper=a4, parskip=half-, draft]{scrreprt}
\usepackage{showframe}% show the page layout
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenx}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{pgfplots}
\pgfplotsset{compat=1.7} %bestimmt exakte version zur gleichen
%\setlength{\parindent}{0pt}% <- not needed because you use parskip=half- option
\begin{document}
\begin{figure}[!h]
\begin{tikzpicture}[scale=0.8]
\begin{axis}[
%title=\textbf{Aus welchen Gründen wurde eLearning in Ihrem Klinikum implementiert?},% <- removed
ybar=15, %Abstand zwischen den Balken
ymin=0,
ymax=50, %maximale Diagrammhöhe
xmin=-1,% <-changed
xmax=1,% <- changed
%ymajorgrids, %Horizontale Guidelines
bar width=30pt, %Balkenbreite
xtick=\empty, %keine kleinen Striche auf x achse
nodes near coords={\pgfmathprintnumber\pgfplotspointmeta \%}, %Fügt Prozent an
nodes near coords align={vertical},
legend style={
legend pos=outer north east,
row sep=10pt,
/tikz/nodes={text width=135pt,text depth=}
}]
\addplot coordinates{(0,31.1)};
\addlegendentry{Aufgrund der gesetzlichen Nachweispflicht (Brandschutz, Arbeitsschutz, etc.)}
\addplot coordinates{ (0,17.8)};
\addlegendentry{Einweisung zur Nutzung medizinischer Geräte}
\addplot coordinates{ (0,44.4)};
\addlegendentry{Zur generellen zeit- und ortsungebundenen Weiterbildung von Mitarbeitern}
\addplot coordinates{ (0,6.7)};
\addlegendentry{Sonstige}
\end{axis}
\node[anchor=south,font=\bfseries\footnotesize]at (current bounding box.north){Aus welchen Gründen wurde eLearning in Ihrem Klinikum implementiert?};% <- added
\end{tikzpicture}
\end{figure}
\end{document}