Hallo zusammen,
ich frage mich wie ich am besten mit LaTeX Diagramme erzeugen kann.
(will davon weg Excel Diagramme einzufügen, habe bezüglich Diagramme in Latex noch keine Erfahrung).
Ich habe etwas recherchiert und bin auf folgende Möglichkeiten gestoßen:
- mit Python und matplotlib -> speichern als PDF?
- mit Python und tikzplotlib -> direkt TikZ-Code erzeugen
- pythontex (innerhalb LaTeX Pythoncode ausführen)
Welches Vorgehen würdet ihr bevorzugen und warum?
(Ziel: Liniendiagramm -> "Messpunkte und Linie durch")
Nachfolgend das Ergebnis mit tikzplotlib:
Pythonskript
Python
import matplotlib.pyplot as plt
import numpy as np
import tikzplotlib
plt.plot([1.0, 1.2, 2.0, 3.2], [289, 320, 333, 384], color='black', marker='o')
plt.xticks(np.arange(1.0, 3.4, step=0.2))
plt.xlabel("Zeit in s")
plt.ylabel("Temperatur in K")
plt.grid(True)
tikzplotlib.save("beispiel.tex")
Alles anzeigen
Ausgabe der beispiel.tex in ein Minimaldokument eingebunden
LaTeX
\documentclass[fontsize=12pt,ngerman]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis background/.style={fill=white!89.8039215686275!black},
axis line style={white},
tick align=outside,
tick pos=left,
x grid style={white},
xlabel={Zeit in s},
xmajorgrids,
xmin=0.89, xmax=3.31,
xtick style={color=white!33.3333333333333!black},
y grid style={white},
ylabel={Temperatur in K},
ymajorgrids,
ymin=284.25, ymax=388.75,
ytick style={color=white!33.3333333333333!black}
]
\addplot [semithick, black, mark=*, mark size=3, mark options={solid}]
table {%
1 289
1.2 320
2 333
3.2 384
};
\end{axis}
\end{tikzpicture}
\end{document}
Alles anzeigen
Zu diesem Codebeispiel noch die Fragen:
- Wie stelle ich in der Achsenbeschriftung Komma statt Punkt ein?
- ich hatte Fälle da wurde in der Achsenbeschriftung 1x10^4 anstatt 10000 angezeigt. Wie lässt sich das umstellen?
- Wie lässt sich die Schriftart konsistent zu LaTeX einstellen (Einheiten bezüglich siunitx)?
- Warum ist der Gridhintergrund grau. Wie kann man das umstellen?