Hallo Leute, für meine Abschlussarbeit möchte ich meine Plots mit Tikz einbinden. Das funktioniert schon ganz gut. Leider hab ich es noch nicht geschafft, den Rand (Abstand zwischen ylabel und x label) kleiner zu machen. Es geht mir vor allem um die Abstände (rot eingezeichnet). Da diese bei mehreren Plots nach einander viel Platz von der Seite verbrauchen.
Am besten wäre eine Lösung die bei allen Plots mit
Hier ein Lauffähiges Minimalbeispiel von einem Plot Open in Online-Editor
\documentclass[ngerman, 11pt]{standalone} \usepackage[utf8]{inputenc} \usepackage{amsmath} % algin Umgebung \usepackage{framed, color} \definecolor{shadecolor}{gray}{.90} \usepackage[ngerman]{babel}% deutscher Text. \usepackage{helvet} % arialähnliche Schriftart %Matlabtikz \usepackage{tikz} \usepackage{pgfplots} \begin{document} \newlength{\figurewidth} \newlength{\figureheight} \setlength{\figureheight}{0.15\textwidth} \setlength{\figurewidth}{0.8\textwidth} \begin{tikzpicture} \begin{axis}[% width=\figurewidth, height=0.948\figureheight, at={(0\figurewidth,0\figureheight)}, scale only axis, every outer x axis line/.append style={black}, every x tick label/.append style={font=\color{black}}, xmin=0, xmax=0.5, xlabel={$t$ [s]}, xmajorgrids, every outer y axis line/.append style={black}, every y tick label/.append style={font=\color{black}}, ymin=-20, ymax=80, ylabel={$p$ [bar]}, ymajorgrids, axis background/.style={fill=white}, axis x line*=bottom, axis y line*=left, legend style={legend cell align=left,align=left,draw=black} ] \addplot [color=black!25!red,solid] table[row sep=crcr]{% 0 0\\ 0.5 7.416\\ }; \addlegendentry{$p_1$}; \end{axis} \end{tikzpicture}% \end{document}
Ergebnis 5 von 8
show 3 more comments
|
Schuld an dem linken Rand neben dem Plot sind die Zeilenenden nach den Open in Online-Editor
\documentclass{standalone} \begin{document} \newlength{\figurewidth} \newlength{\figureheight} \setlength{\figureheight}{0.15\textwidth} \setlength{\figurewidth}{0.8\textwidth} Text \end{document} liefert Verwendet man statt dessen Open in Online-Editor
\documentclass{standalone} \begin{document} \newlength{\figurewidth}% \newlength{\figureheight}% \setlength{\figureheight}{0.15\textwidth}% \setlength{\figurewidth}{0.8\textwidth}% Text \end{document} oder Open in Online-Editor
\documentclass{standalone} \newlength{\figurewidth} \newlength{\figureheight} \setlength{\figureheight}{0.15\textwidth} \setlength{\figurewidth}{0.8\textwidth} \begin{document} Text \end{document} bekommt man Mit einer Standard- oder KOMA-Script-Klasse würde man dagegen eventuell einen Absatzeinzug bekommen, den man mit Die ganzen Label sind im Prinzip nur Nodes, die man sich mit der Option Allerdings kann man noch die Beschriftung der Open in Online-Editor
xticklabel style={/pgf/number format/.cd,precision=2,fixed}, Man hätte dann mit Open in Online-Editor
\documentclass[ngerman, 11pt]{standalone} \usepackage[utf8]{inputenc} \usepackage{babel}% deutscher Text. \usepackage{helvet} % arialähnliche Schriftart %Matlabtikz \usepackage{pgfplots} \pgfplotsset{compat=newest} \definecolor{shadecolor}{gray}{.90} \newlength{\figurewidth} \newlength{\figureheight} \setlength{\figureheight}{0.15\textwidth} \setlength{\figurewidth}{0.8\textwidth} \begin{document} \begin{tikzpicture}%[nodes=draw] \begin{axis}[% width=\figurewidth, height=0.948\figureheight, at={(0\figurewidth,0\figureheight)}, scale only axis, every outer x axis line/.append style={black}, every x tick label/.append style={font=\color{black}}, xmin=0, xmax=0.5, xlabel={$t$ in s}, xmajorgrids, every outer y axis line/.append style={black}, every y tick label/.append style={font=\color{black}}, ymin=-20, ymax=80, ylabel={$p$ in bar}, ymajorgrids, %axis background/.style={fill=white}, axis x line*=bottom, axis y line*=left, legend style={legend cell align=left,align=left,draw=black}, xticklabel style={/pgf/number format/.cd,precision=2,fixed}, ] \addplot [color=black!25!red,solid] table[row sep=crcr]{% 0 0\\ 0.5 7.416\\ }; \addlegendentry{$p_1$}; \end{axis} \end{tikzpicture} \end{document} folgendes Ergebnis Bezogen auf einen Kommentar: Möchte man die Schriftgröße in allen TikZ-Abbildungen verkleinern, dann geht das zum Beispiel mit Open in Online-Editor
\tikzset{font=\footnotesize} vorausgesetzt, die Open in Online-Editor
every x tick label/.append style={font=\color{black}}, every y tick label/.append style={font=\color{black}}, Man könnte jetzt diese Zeilen bei allen Bildern rauslöschen oder in diesen Zeilen die gewünschte Schriftgröße hinter der Farbe ergänzen. Aber man kann auch auf Entweder für alle Nodes mit Open in Online-Editor
\tikzset{node font=\footnotesize} oder nur für die Ticklabels: Open in Online-Editor
\tikzset{font=\footnotesize} \pgfplotsset{ compat=newest, ticklabel style={node font=\footnotesize}, xticklabel style={/pgf/number format/precision=2,/pgf/number format/fixed}, } beantwortet 15 Okt '15, 22:28 esdd Perfekte und sehr ausführliche Erklärung, habe dabei viel gelernt! Danke! Es hat super funktioniert. Ohne die Zwischenräume sehen meine Plots jetzt viel besser aus :-)
(16 Okt '15, 01:28)
Thomas88
Eine Frage hab ich noch: Wie kann bei den xticklabels und yticklabels die Schriftgröße (fontsize) bei allen Plots ändern? Den Schriftgrad in xlabels und ylabels hab ich mit usepackage{anyfontsize} tikzset{ every picture/.append style={font={fontsize{10pt{10}selectfont}}} einstellen. Dabei werden allerdings die ticklabels nicht mit verändert.
(16 Okt '15, 09:55)
Thomas88
1
Ich würde dann eher
(16 Okt '15, 10:47)
esdd
|
Sehe ich es richtig, dass die ganze Zeichnung nach links verschoben werden soll?
Da dürfte es
\noindent\begin{tikzpicture}
tun.Ansonsten ist vll. auch
\begin{tikzpicture}[scale=0.75]
hilfreich.Um die Labels zu verschieben:
xlabel={$t$ [s]}, xlabel style ={yshift=1cm, color=red, ...},
Nur nebenbei: Achsenbeschriftungen wie p [bar] sind nicht normgerecht. Zulässig wäre entweder p/bar oder p in bar. In eckige Klammern schreibt man Formelzeichen, z.B. [p] = bar, was ausgesprochen "Einheit von" bedeutet. Die Schreibeweise {p} = 2 steht übrigens für "Zahlenwert von". Zusammen p = {p}[p].
Danke für eure Hilfe!
Das Skalieren sieht super aus! Allerdings kann ich dann nicht mehr die ganze Breite der Seite nutzen.
Gibt es eine Möglichkeit den Text (xlabel, ylabel, xticklabel, ylabel) des Plots zu verkleinern? Das würde bei meinem Plot wahrscheinlich schon ausreichen!
Danke für den Hinweis mit den Achsenbeschriftungen. Das sollte ich auch noch ändern!
Wenn es bei Klasse
standalone
bleiben soll, dann füg mal beim Laden der Klasse noch Optiontikz
hinzu. Dann wird nämlich dietikzpicture
selbst zur Seite. Absatzeinzug etc. spielen dann keine Rolle.Ansonsten wie @cis schon sagte
\noindent
, damit der Absatzeinzug vor dertikzpicture
unterbleibt. Oben und rechts kann man kaum noch etwas sparen. Wenn man sich die Beschriftung der Achsen anschaut, sieht man, dass da wirklich kaum noch Luft ist."Nur nebenbei: Achsenbeschriftungen wie p [bar] sind nicht normgerecht. ...." Ich kenne diese Meinung und auch sämtliche Debatten dazu. Mit Verlaub, das halte ich für Schmarn - die ganze Fachwelt, m.a.W. unzählige Skripte, machen es so. Wichtig bei einer Schreibweise ist, dass man versteht, was gemeint ist und x[e] "x in e (gemessen)" versteht man. Die Diskrepanz ergibt sich, weil auch [x] = e "Einheit von x gleich e" geschrieben wird. Ja sehr viele Schreibweisen haben eben verschiedene Bedeutungen, die erst im Kontext klar werden; so steht z.B. "[...]" auch für die Gaußklammer.
@cis: Das SI-System besteht nicht nur aus Einheiten, sondern umfasst auch eine Notation. Wenn wir Notation beliebig machen, brauchen wir auch keine SI-Einheiten mehr. Dann kann ich einfach erklären, dass ich
M
für Meter verwende und gut ist. Schließlich geht das dann aus dem Kontext aufgrund meiner Erklärung nicht nur hervor, sondern ist dann auch eindeutig. Auch gibt es dann keinen Grund mehr, Einheiten aufrecht zu setzen – Hauptsache aus dem Kontext geht irgendwie hervor, was eine Einheit und was eine Variable ist. Undwarumsollteichdannnochsatzzeichenoäverwendensolangeausdemkontext…@saputello: Im Normalfall stimme ich Ich Dir zu. In diesem Fall finde ich
x in e
, also mit "Worten" bzw. mit dem Wort "in" sieht am Diagramm besch... aus. Tatsächlich schreiben z.B. Chemiker gerneL
stattl
für "Liter"; hat irgendwelche Hintergründe - also m.M.n.: Flexibilität ist angesagt.