Matlab2Tikz

Tabellen und Grafiken erstellen und anordnen


Blubb1612

Matlab2Tikz

Beitrag von Blubb1612 »

Hallo.
Ich nutze 'Matlab2Tikz' um meine im Matlab-Diagramme schick in mein Tex-Dokument einzubinden.
Dabei habe ich allerdings das Problem, dass ich die Größe der Legende der Matlab Figure nicht anpassen kann und diese auch eher nicht skaliert wird, wenn ich folgenden Code zum einbinden nehme. Wie kann ich denn die Größe der Legenden ändern bzw festlegen?
\begin{figure}[H]
\centering
\subfloat[\label{pic:GM}]{\setlength\figureheight{3cm}
\setlength\figurewidth{5cm}
\input{GM.tikz}}
\hspace{0.5cm} 
\subfloat[\label{pic:KO}]{\setlength\figureheight{3cm}
\setlength\figurewidth{5cm}
\input{KO.tikz}}
\caption{Zwei Bilder: a) Text1, b) Text2}
\label{Gesamtbild}
\end{figure}
[\code]

Epllus
Forum-Guru
Forum-Guru
Beiträge: 470
Registriert: So 23. Sep 2012, 17:31

Beitrag von Epllus »

Bitte ein lauffähiges Minimalbeispiel (oder auch nicht minimal je nachdem).

TomF
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Mi 14. Dez 2016, 12:44

Beitrag von TomF »

Hallo,

ich habe ein ähnliches Problem:

Genau wie Blubb1612 nutze auch ich Matlab2Tikz und habe damit 9 plots als .tikz datei abgespeichert. Diese möchte ich nun mit Hilfe von 9 Minipages (für elegantere Lösung gerne beschied geben;) ) zu einem 3x3 Raster auf einer Seite darstellen und muss dazu die Größe der einzelnen Grafiken anpassen. Dies habe ich nun mit
 \usepackage{tikzscale}
und
\begin{minipage}{0.3\textwidth}
		 \centering \includegraphics[width=\textwidth]{fig2.tikz}
	  \end{minipage}
gelöst, allerdings dauert ein compile Vorgang ca eine minute und somit ist das keine wirrkliche Lösung meines Probelms...

Hier ein Minimalbesipiel:
\documentclass[a4paper,oneside,DIV=18,12pt,page2 package
listsleft]{scrreprt}

\usepackage[german]{babel}              
\usepackage[T1]{fontenc}                 
\usepackage[utf8]{inputenc}              
\usepackage[komastyle]{scrpage2} 

\usepackage{float}
\usepackage{pgfplots}
\usepackage{tikzscale}

\begin{document}
\begin{figure}[H]
	\begin{minipage}{0.3\textwidth}
		 \centering \includegraphics[width=\textwidth]{fig2.tikz}
	\end{minipage}
	\begin{minipage}{0.3\textwidth}
		 \centering \includegraphics[width=\textwidth]{fig2.tikz}
	\end{minipage}
	\begin{minipage}{0.3\textwidth}
		 \centering \includegraphics[width=\textwidth]{fig2.tikz}
	\end{minipage}\\
	\begin{minipage}{0.3\textwidth}
		\centering \includegraphics[width=\textwidth]{fig2.tikz}
	\end{minipage}
	\begin{minipage}{0.3\textwidth}
		\centering \includegraphics[width=\textwidth]{fig2.tikz}
	\end{minipage}
	\begin{minipage}{0.3\textwidth}
		\centering \includegraphics[width=\textwidth]{fig2.tikz}
	\end{minipage}\\
	\begin{minipage}{0.3\textwidth}
		\centering \includegraphics[width=\textwidth]{fig2.tikz}
	\end{minipage}
	\begin{minipage}{0.3\textwidth}
		\centering \includegraphics[width=\textwidth]{fig2.tikz}
	\end{minipage}
	\begin{minipage}{0.3\textwidth}
		\centering \includegraphics[width=\textwidth]{fig2.tikz}
	\end{minipage}
	\caption{Ansatzfunktionen}
\end{figure}

\end{document}
Als Anhang noch ein Bild, wie es aussehen soll bzw. wie es mit entsprechender Wartezeit auch aussieht...
fig2.tikz ist ebenfalls angehängt, somit ist der code komplett lauffähig!

Vielen vielen Dank schon einmal im Vorraus

Beste Grüße TomF
Dateianhänge
fig2.tikz
(15.41 KiB) 268-mal heruntergeladen
Annordnung_Tikz.PNG
Annordnung_Tikz.PNG (99.01 KiB) 2734 mal betrachtet

Gast

Beitrag von Gast »

Eigentlich ist das ein ganz anderes Problem und sollte deshalb nicht an eine frühere Frage angehängt werden, sondern als neue gestellt werden.

Zunächst einmal gibt das Beispiel die Warnung:
LaTeX Warning: Unused global option(s):
    [page2packagelistsleft].
was ehrlich gesagt nicht sonderlich verwunderlich ist.

Dann arbeitet tikzscale in einer Art und Weise, dass das Bild mehrfach neu verarbeitet wird, bis es passt. Wie man aus der log-Datei erkennt:
(./fig2.tikz) (./fig2.tikz) (./fig2.tikz) (./fig2.tikz) (./fig2.tikz)
(./fig2.tikz) (./fig2.tikz) (./fig2.tikz) (./fig2.tikz) (./fig2.tikz)
(./fig2.tikz) (./fig2.tikz) (./fig2.tikz) (./fig2.tikz) (./fig2.tikz)
(./fig2.tikz) (./fig2.tikz) (./fig2.tikz) (./fig2.tikz) (./fig2.tikz)
(./fig2.tikz) (./fig2.tikz) (./fig2.tikz) (./fig2.tikz) (./fig2.tikz)
(./fig2.tikz) (./fig2.tikz) (./fig2.tikz) (./fig2.tikz) (./fig2.tikz)
(./fig2.tikz) (./fig2.tikz) (./fig2.tikz) (./fig2.tikz) (./fig2.tikz)
(./fig2.tikz) (./fig2.tikz) (./fig2.tikz) (./fig2.tikz) (./fig2.tikz)
(./fig2.tikz) (./fig2.tikz) (./fig2.tikz) (./fig2.tikz) (./fig2.tikz)
führt das dazu, dass jede der neun Grafiken viermal neu aufgebaut wird, also insgesamt 36 Mal! Dass das länger dauert, ist nicht sonderlich verwunderlich.

BTW: Verwendest du wirklich alte Rechtschreibung (also beispielsweise "daß" statt "dass")? Sonst wäre die Option bei babel nämlich falsch. Außerdem wurde scrpage2 schon vor längerer Zeit durch scrlayer-scrpage ersetzt. Und wenn das ganze nicht gleiten soll, kann man eigentlich einfach auf die Gleitumgebung verzichten. Außerdem sollte man immer compat setzen, wenn man pgfplots verwendet.

Gast

Beitrag von Gast »

Ach, ich vergaß: Du solltest Abschnitt 3.2 in der [d]tikzscale[/d]-Anleitung lesen. Dort gibt es zu dem Zeitproblem einen Tipp.

Gast

Beitrag von Gast »

Es sind sogar 5*9=45 Ladevorgänge für die Abbildung, was aber nichts an der grundsätzlichen Korrektheit der Erklärung ändert.

In der Tat benötigt
\documentclass[DIV=18,12pt]{scrreprt}% a4paper und oneside sind default

\usepackage[ngerman]{babel}% Neue Deutsche Rechtschreibung
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[automark]{scrlayer-scrpage}% scrpage2 ist veraltet

\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\usepackage{tikzscale}
\usetikzlibrary{external}
\tikzexternalize

\begin{document}

\noindent\begin{minipage}{\textwidth}
\begin{minipage}{0.3\textwidth}
\centering \includegraphics[width=\textwidth]{fig2.tikz}
\end{minipage}
\begin{minipage}{0.3\textwidth}
\centering \includegraphics[width=\textwidth]{fig2.tikz}
\end{minipage}
\begin{minipage}{0.3\textwidth}
\centering \includegraphics[width=\textwidth]{fig2.tikz}
\end{minipage}\\
\begin{minipage}{0.3\textwidth}
\centering \includegraphics[width=\textwidth]{fig2.tikz}
\end{minipage}
\begin{minipage}{0.3\textwidth}
\centering \includegraphics[width=\textwidth]{fig2.tikz}
\end{minipage}
\begin{minipage}{0.3\textwidth}
\centering \includegraphics[width=\textwidth]{fig2.tikz}
\end{minipage}\\
\begin{minipage}{0.3\textwidth}
\centering \includegraphics[width=\textwidth]{fig2.tikz}
\end{minipage}
\begin{minipage}{0.3\textwidth}
\centering \includegraphics[width=\textwidth]{fig2.tikz}
\end{minipage}
\begin{minipage}{0.3\textwidth}
\centering \includegraphics[width=\textwidth]{fig2.tikz}
\end{minipage}
\captionof{figure}{Ansatzfunktionen}
\end{minipage}

\end{document}
bei mir ab dem zweiten LaTeX-Lauf nur noch 2 Sekunden, während der erste über 2 Minuten benötigt und ohne external jeder LaTeX-Lauf über 2 Minuten benötigt.

TomF
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Mi 14. Dez 2016, 12:44

Beitrag von TomF »

Erst einmal vielen Dank für die wirklich schnellen und guten Antowrten!
Ich bin leider ien ziemlicher Anfänger aber mittlerweile auch großer Liebhaber von LaTeX, somit vielen Dank für die allgeimenen "BTW" Hinweise ;)

Wenn ich nun die external library verwenden möchte und eure anderen Hinweise umsetze bekomme ich jedoch folgenden Fehler ausgespuckt:

Package tikz Error: Sorry, the system call 'pdflatex -halt-on-error -interact

und zwar in der fig2.tikz file selber.[/code]

Gast

Beitrag von Gast »

Lies bitte in der [d]pgf[/d]-Anleitung nach, was bei Verwendung von external zu beachten ist. Beachte außerdem, dass Fehlermeldungen vollständig aus der log-Datei kopiert werden sollten (und weil Leerzeichen und Umbrüche wichtig sind zwischen Code-Tags).

Mit dem Bruchstück der Fehlermeldung würde ich vermuten, dass du beim Aufruf von pdflatex dessen Aufrufparameter -shell-escape nicht angegeben hast. Siehe beispielsweise Wie aktiviere ich -shell-escape in meinem Editor?

TomF
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Mi 14. Dez 2016, 12:44

Beitrag von TomF »

Vielen Dank, nun klappt alles!

Ein simples einfügen der Zeile

% !TeX TXS-program:compile = txs:///pdflatex/[--shell-escape]

am Anfang des Elements hat das Problem behoben (Wie auch immer Du das aus der Fehlermeldung erkannst hast... :shock:).

Antworten