"pgfplots" automatisch auf die Textbreite skaliere

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: "pgfplots" automatisch auf die Textbreite skaliere

von monchi » So 4. Jan 2015, 20:59

perfekt! genau so hatte ich mir das vorgestellt.


Vielen herzlichen Dank!

von esdd » So 4. Jan 2015, 19:37

Da ist noch der innere Abstand in den Noden der Beschriftung. Versuche es mit
xticklabel style={inner xsep=0pt},
ylabel style={inner ysep=0pt},
Gruß
Elke

von monchi » So 4. Jan 2015, 18:43

Hi Stefan!

Danke für den Hinweis das Paket macht (fast) genau das was wollte.

Mein Latex-Dokument sieht jetzt wie folgt aus:


\documentclass[10pt,a4paper]{report}
\usepackage{blindtext}
\usepackage{pgfplots}
\usepackage{filecontents}
\usepackage{tikzscale}

\begin{filecontents}{beispiel-diag.tikz}
		\begin{tikzpicture}
			\begin{axis}[
				scale only axis, 
				yticklabel style={align=right,inner sep=0pt,xshift=-0.1cm},
				ylabel={Hoehe [mm]},
				xlabel={Zeit [s]}
				]
				\addplot[domain=0:1100]{10*x^(1/2)};
			\end{axis}
		\end{tikzpicture}
\end{filecontents}

\begin{document}
	\blindtext
	\begin{figure}[h]%
		\centering
		\includegraphics[width=\textwidth,height=7cm]{beispiel-diag.tikz}
		\caption{Testbild}
	\end{figure}
	\blindtext
\end{document}
Das Diagramm wird wie gewünscht skaliert. Die Beschriftung der Achse ist aber nicht 100%ig bündig mit dem Fließtext. Ich vermute das die \tikzpicture Umgebung einen kleinen schmalen weißen Rand erzeugt.
Manuell kann ich den mit "trim" entfernen. Gibt es da evtl. noch eine etwas elegantere Lösung?

von Stefan Kottwitz » So 4. Jan 2015, 17:30

Hallo Monchi,

das kannst Du mit dem tikzscale-Paket machen. Das kann TikZ- und pgfplots-Bilder skalieren, ohne die Textgröße zu verändern.

Stefan

"pgfplots" automatisch auf die Textbreite skaliere

von monchi » Sa 3. Jan 2015, 20:05

Hi,

ich habe in meinem Dokument verschiedene Plots. Diese möchte ich möglichst automatisch auf die Textbreite skalieren. Die "original" Schriftgröße soll dabei erhalten bleiben.

Das ganze realisiere ich bis jetzt wie folgt:
\documentclass[10pt,a4paper]{report}
\usepackage{blindtext}
\usepackage{pgfplots}

\begin{document}
	\blindtext
	\begin{figure}[h]%
		\centering
		\begin{tikzpicture}
		\begin{axis}[
			scale only axis, 
			height=6cm,
			width=\textwidth-\widthof{300}-0.1cm,
			yticklabel style={align=right,inner sep=0pt,xshift=-0.1cm},
			%ylabel={Höhe [mm]},
			xlabel={Zeit [s]}
			]
			\addplot[domain=0:1000]{10*x^(1/2)};
		\end{axis}
		\end{tikzpicture}
		\caption{Testbild}
	\end{figure}
	\blindtext
\end{document}
Funktioniert auch alles soweit, bis ich eine Achsenbeschriftung hinzufüge. Diese muss ich bis jetzt noch manuell in der Zeile "width=\textwidth-\widthof{300}-0.1cm," hinzufügen. Gibt es eine einfache Möglichkeit die Breite der Beschriftung automatisch zu ermitteln?

Edit:
Ebenfalls zu Problemen führt es, wenn die Beschriftung der X-Achse "rechts über die Diagrammfläche hinausragt":
\documentclass[10pt,a4paper]{report}
\usepackage{blindtext}
\usepackage{pgfplots}

\begin{document}
	\blindtext
	\begin{figure}[h]%
		\centering
		\begin{tikzpicture}
		\begin{axis}[
			scale only axis, 
			height=6cm,
			width=\textwidth-\widthof{100}-0.1cm,
			yticklabel style={align=right,inner sep=0pt,xshift=-0.1cm},
			%ylabel={Hoehe [mm]},
			xlabel={Zeit [s]}
			]
			\addplot[domain=0:1100]{10*x^(1/2)};
		\end{axis}
		\end{tikzpicture}
		\caption{Testbild}
	\end{figure}
	\blindtext
\end{document}

Nach oben