Von Matlab in Tikz in Latex

Tabellen und Grafiken erstellen und anordnen


greeco-k
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 60
Registriert: Sa 28. Mär 2015, 16:26

Von Matlab in Tikz in Latex

Beitrag von greeco-k »

Hallo zusammen,

ich habe in Matlab einen Grafik die ich gerne in mein Latex Dokument aufnehmen würde. Bisher habe ich folgende Lösung gefunden. Auf der Matlab Seite gibt es ein Skript (Matlab2tikz), welches eine geöffnete figure in Matlab in tikz grafik übersetzt. Das Skript spukt dann soetwas aus:
\begin{tikzpicture}

\begin{axis}[%
width=0.4\linewidth, %G-K: Hier habe ich von Hand nachgebessert!
height=3.87974in,
at={(1.742812in,0.523646in)},
scale only axis,
separate axis lines,
every outer x axis line/.append style={black},
every x tick label/.append style={font=\color{black}},
xmin=0,
xmax=5,
xmajorgrids,
every outer y axis line/.append style={black},
every y tick label/.append style={font=\color{black}},
ymin=0,
ymax=6.5,
ymajorgrids
]
\addplot [color=blue,solid,forget plot]
  table[row sep=crcr]{%
0	2.5\\
0.01	2.5075\\
0.03	2.5225\\
0.07	2.5525\\
0.15	2.6125\\
0.31	2.7325\\
0.63	2.9725\\
1.27	3.4525\\
2.55	4.4125\\
5	6.25\\
};
\end{axis}
\end{tikzpicture}%
Das ganze binde ich dann folgendermaßen in mein Latex Dokument ein:
\documentclass[a4paper,12pt]{scrreprt}
\usepackage[left= 2.5cm,right = 2cm, bottom = 4 cm]{geometry}
\usepackage[demo]{graphicx}
\usepackage{graphicx, subfigure}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{float}

\usepackage{pgfplots}


\begin{document}
 Hier steht ein Beispieltext! =)

\begin{figure}[htbp]
  \centering
\begin{minipage}{0.8\textwidth}
  \centering
    \input{Abbildungen/Test_Grafik.tex}
    \input{Abbildungen/Test_Grafik.tex}
      \caption[]{Das ist eine schöne Vektorgrafik\footcite[45]{MeineQuelle}}
    \label{abb:}
\end{minipage}
\end{figure}

\end{document}
Wenn jetzt die Grafik sehr breit ist, wird diese nicht in der Minipage gehalten, sondern geht bis über den Seitenrand hinaus. Ich habe jetzt, wie oben angedeutet, immer per Hand die Breite der Abbildung editiert. Ich denke das liegt am input Befehl. Kenne mich da aber nicht so aus.

Gibt es noch eine bessere/schönere/stabilere Lösung Matlabgrafiken einzubinden?

Wie immer vielen Dank schonmal!

bademaister
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Fr 26. Aug 2011, 09:20

Beitrag von bademaister »

Moin,

könntest du nicht einfach deinen Plot aus Matlab in eine PDF/EPS-Datei plotten und diese dann in Latex einbinden?

Beim Plotten kannst du dann auch schon eine gewünschte Breite angeben, was dann das Skalieren in Latex eventuell überflüssig macht.



Grüße

Paul

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Oder Werte in eine Textdatei schreiben und mit pgfplots plotten.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

greeco-k
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 60
Registriert: Sa 28. Mär 2015, 16:26

Beitrag von greeco-k »

bademaister hat geschrieben:Moin,

könntest du nicht einfach deinen Plot aus Matlab in eine PDF/EPS-Datei plotten und diese dann in Latex einbinden?

Beim Plotten kannst du dann auch schon eine gewünschte Breite angeben, was dann das Skalieren in Latex eventuell überflüssig macht.



Grüße

Paul
Dann hätte ich aber nicht die Latex Schrift und könnte keine Formeln usw. verwenden... oder?

@Johannes:
Aber mache ich das nicht? Siehe ersten Post?

Grüße

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Doch schon, allerdings wird der Code von einem Script generiert, was für dich Nachbearbeitung bedeutet.
Ändern sich deine Werte in Matlabl, musst du das Skript neu aufrufen, neu nachbearbeiten.

Exportierst du stattdessen die Werte nackisch, und lässt diese durch pgfplots darstellen (Übergabe des Dateinamen), musst du bei eventuellen Änderungen nur noch aus Matlab exportieren. Damit bleibt auch der LaTeX-Code übersichtlicher, da du dir Dinge wie das Setzen der Schriftfarbe auf schwarz meist sparen kannst.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

greeco-k
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 60
Registriert: Sa 28. Mär 2015, 16:26

Beitrag von greeco-k »

Ah ok ja das klingt besser.

Ich soll also die Matlab figure speichern und diese dann in mein Latex dokument einbinden? Als was soll ich speichern? eps? Und wie binde ich dann ein?

Besten Dank schonmal!

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Das hast du doch vorhin mit der Begründung verworfen, nicht die Schriftart dines Dokumentes zu haben.

Du sollst deine Messwerte in eine Datei exportieren, und diese Datei von pgfplots darstellen lassen.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

greeco-k
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 60
Registriert: Sa 28. Mär 2015, 16:26

Beitrag von greeco-k »

ah jetzt hab ich es verstanden! =)

Mache denke ich aber lieber die gesamte formatierung der Grafik in Matlab und passe dann Höhe und Breite händisch an, bevor ich mich jetzt in pgfplots reinfuchse...

Antworten