Diagramme erstellen - Matplotlib vs tikzplotlib vs pythontex

Tabellen und Grafiken erstellen und anordnen


update.freak
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 86
Registriert: Mo 9. Dez 2019, 21:36

Diagramme erstellen - Matplotlib vs tikzplotlib vs pythontex

Beitrag von update.freak »

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
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")
Ausgabe der beispiel.tex in ein Minimaldokument eingebunden
\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}
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?

Gast

Re: Diagramme erstellen - Matplotlib vs tikzplotlib vs pytho

Beitrag von Gast »

update.freak hat geschrieben:Wie stelle ich in der Achsenbeschriftung Komma statt Punkt ein?
Setze
\pgfplotsset{compat=1.16, /pgf/number format/use comma}


in die Präambel.
update.freak hat geschrieben:Warum ist der Gridhintergrund grau. Wie kann man das umstellen?
Eigentlich selbsterklärende Option: axis background.

update.freak
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 86
Registriert: Mo 9. Dez 2019, 21:36

Beitrag von update.freak »

danke.
Ja stimmt, das mit dem Hintergrund habe ich mir schon gedacht.
War jedoch verwundert warum mein Python-Skript automatisch so einen Hintergrund auswählt und nicht einfach weiß lässt.

Antworten