{"id":4365,"date":"2026-05-06T10:00:00","date_gmt":"2026-05-06T08:00:00","guid":{"rendered":"https:\/\/staging.elv.eqxt.de\/?p=4365"},"modified":"2026-05-05T13:58:53","modified_gmt":"2026-05-05T11:58:53","slug":"python-einstieg-teil6-matplotlib-grafiken","status":"publish","type":"post","link":"https:\/\/de.elv.com\/elvjournal\/python-einstieg-teil6-matplotlib-grafiken\/","title":{"rendered":"Einstieg in Python (Teil 6): Grafikkunst mit MatPlotLib"},"content":{"rendered":"\n<p class=\"has-gray-light-color has-text-color has-link-color has-h-5-font-size wp-elements-8293fef9e4cbbb5ebb330cc2148124c6\"><strong>Einstieg in Python, Teil 6<\/strong><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Grafikkunst mit MatPlotLib<\/h1>\n\n\n\n<p><strong>Die meisten Menschen sind visuelle Wesen \u2013 eine einzige Grafik sagt daher oft mehr als umfangreiche Datenlisten oder numerische Tabellen. Zudem k\u00f6nnen Zusammenh\u00e4nge meist wesentlich rascher erfasst werden, wenn sie in grafische Darstellungen gefasst sind. Mit MatPlotLib steht f\u00fcr Python eine Bibliothek zur Verf\u00fcgung, mit der die Arbeit mit grafischen Darstellungen zum Kinderspiel wird. Kein Wunder also, dass sich Python und die MatPlotLib zunehmender Beliebtheit erfreuen. In Kombination mit NumPy und SciPy ist die MatPlotLib klassischen Mathematikprogrammen mindestens ebenb\u00fcrtig, wenn nicht sogar \u00fcberlegen. Zudem ist die MatPlotLib kostenlos erh\u00e4ltlich, quelloffen und sie kann objektorientiert programmiert werden.<\/strong><\/p>\n\n\n\n<p>Mittels MatPlotLib k\u00f6nnen Diagramme und Darstellungen in verschiedenen Formen und Formaten erzeugt werden. Die dabei erzielbare Qualit\u00e4t reicht problemlos auch an Erfordernisse f\u00fcr wissenschaftliche Ver\u00f6ffentlichungen heran. Dennoch k\u00f6nnen selbst Einsteiger mit MatPlotLib schnell beachtliche Erfolge erzielen. Mit nur wenigen Codezeilen lassen sich einfache x\/y-Plots, Histogramme, Leistungsspektren, Balkendiagramme, Fehlerdiagramme, Streudiagramme etc. erzeugen.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Importieren der MatPlotLib-Bibliothek in Thonny<\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Nach dem Starten von Thonny wird zun\u00e4chst der Paketmanager (Werkzeuge (Tools) \u2192 Paketmanager) ge\u00f6ffnet. Im Men\u00fc \u201eWerkzeuge\u201c (Tools) wird dann nach \u201eMatPlotLib\u201c gesucht <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-blue-color\">(Bild 1)<\/mark>.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1016\" height=\"646\" src=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild1_Python6.jpg\" alt=\"\" class=\"wp-image-6505\" srcset=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild1_Python6.jpg 1016w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild1_Python6-300x191.jpg 300w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild1_Python6-768x488.jpg 768w\" sizes=\"auto, (max-width: 1016px) 100vw, 1016px\" \/><figcaption class=\"wp-element-caption\">Bild 1: Installation der MatPlotLib-Bibliothek<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>Nach einem Klick auf die gefundene Bibliothek kann diese im n\u00e4chsten Fenster installiert werden. Zum Abschluss kann man noch \u00fcberpr\u00fcfen, ob MatPlotLib korrekt installiert und verf\u00fcgbar ist. Hierzu kann man ein neues Programmfenster \u00f6ffnen und \u201eimport MatPlotLib.pyplot as plt\u201c eingeben. Wenn kein Fehler gemeldet wurde, ist alles in Ordnung.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Erste Schritte: Erstellen einfacher Diagramme<\/h2>\n\n\n\n<p>Nur einige wenige Befehle und Anweisungen bilden die Grundlage der MatPlotLib. Eines der zentralen Module der MatPlotLib ist Pyplot. Damit lassen sich einfache Funktionen wie Linien, Bilder, Texte mit wenigen Programmzeilen darstellen. Ein erstes Beispiel verdeutlicht, wie man Linien-Diagramme erstellt (siehe Line_Diagram.py):<\/p>\n\n\n\n<pre class=\"wp-block-code has-black-background-color has-background\" style=\"padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)\"><code>import MatPlotLib.pyplot as plt\n\n# Daten definieren\nx = &#91;1, 2, 3, 4, 5, 6]\ny = &#91;1, 4, 9, 16, 25, 36]\n\n# Plot erstellen\nplt.figure(figsize=(8,6))\nplt.plot(x, y, label='squares')\nplt.title('line diagram')\nplt.xlabel('x-axis')\nplt.ylabel('y-axis')\nplt.legend()\nplt.show()<\/code><\/pre>\n\n\n\n<p>Dieser Code erzeugt ein einfaches Liniendiagramm<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-blue-color\"> (Bild 2)<\/mark>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>plt.figure() erstellt eine neue Grafik (\u201eFigur\u201c)<\/li>\n\n\n\n<li>plt.plot() f\u00fcgt dem Diagramm die definierten Daten hinzu<\/li>\n\n\n\n<li>plt.show() zeigt das Diagramm in einem eigenen Fenster<\/li>\n<\/ul>\n\n\n\n<p>Mit den Funktionen plt.title(), plt.xlabel() und plt.ylabel() k\u00f6nnen dem Diagramm Titel, Beschriftungen und Achsenbezeichnungen hinzugef\u00fcgt werden. Damit lassen sich bereits eine Vielzahl von Grafikaufgaben erledigen. Dennoch geben diese Befehle nur einen ersten Eindruck. Im Laufe dieses Artikels sollen die Funktionen und M\u00f6glichkeiten dieser m\u00e4chtigen Bibliothek etwas detaillierter vorgestellt werden.<br>Zun\u00e4chst besteht eine MatPlotLib-Grafik prinzipiell aus den folgenden Bestandteilen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\n\t\t<strong>Figure<\/strong><br>Hierunter wird die gesamte Abbildung verstanden. Sie kann eine oder mehrere Diagramme enthalten. Eine \u201eFigure\u201c ist als eine Art Leinwand zu verstehen, die einzelne Diagramme enth\u00e4lt.\n\t<\/li>\n\n\n\n<li>\n\t\t<strong>Axes<\/strong><br>Eine \u201eFigure\u201c kann mehrere Achsen enthalten. Jede Achse hat optional<br>&#8211; einen Titel<br>&#8211; ein X-Label<br>&#8211; ein Y-Label<br>&#8211; ein Z-Label (bei 3D-Darstellungen)\n\t<\/li>\n\n\n\n<li>\n\t\t<strong>Axis<\/strong><br>\u00dcber Axis-Objekte werden die Achsen mit Ma\u00dfst\u00e4ben und Diagrammgrenzen versehen.\n\t<\/li>\n\n\n\n<li>\n\t\t<strong>Artist<\/strong><br>Enth\u00e4lt Text-, Linen-, 2D- oder 3D-Objekte etc.\n\t<\/li>\n<\/ul>\n\n\n\n<p>Mit diesen Grafikelementen lassen sich praktisch alle denkbaren Bild- und Darstellungsvariationen aufbauen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\" style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"1043\" height=\"876\" src=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild2_Python6.jpg\" alt=\"\" class=\"wp-image-6506\" style=\"width:600px\" srcset=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild2_Python6.jpg 1043w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild2_Python6-300x252.jpg 300w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild2_Python6-768x645.jpg 768w\" sizes=\"auto, (max-width: 1043px) 100vw, 1043px\" \/><figcaption class=\"wp-element-caption\">Bild 2: Liniendiagramm<\/figcaption><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Grundelemente der Visualisierung mit MatPlotLib<\/h2>\n\n\n\n<p>In MatPlotLib bezeichnet die \u201eFigure\u201c das gesamte Fenster oder die gesamte Seite, auf der alle Darstellungen erfolgen. Eine Figure kann eine oder mehrere \u201eAxes\u201c enthalten. Hierunter versteht man x\/y-Diagramme, in denen Daten in Form von Linien, Balken, Punkten usw. visualisiert werden k\u00f6nnen. Eine \u201eAxe\u201c kann man sich als eine einzelne Plotfl\u00e4che vorstellen, die ihre eigenen Achsen und Titel besitzt. Das Verst\u00e4ndnis des Figure-Axes-Konzepts ist entscheidend f\u00fcr die effektive Nutzung von MatPlotLib. Das folgende Beispiel (SinCos.py) illustriert diese Methode:<\/p>\n\n\n\n<pre class=\"wp-block-code has-black-background-color has-background\" style=\"padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)\"><code>import MatPlotLib.pyplot as plt\nimport numpy as np\n\n# Beispiel-Daten\nx = np.linspace(0, 10, 100)\ny1 = np.sin(x)\ny2 = np.cos(x)\n\n# Erstellen einer Figure mit 2 Subplots (1x2 Anordnung)\nfig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4))\n\n# Plot im ersten Subplot\nax1.plot(x, y1, label='sin(x)')\nax1.set_title('Sinusfunktion')\nax1.set_xlabel('x')\nax1.set_ylabel('sin(x)')\nax1.legend()\n\n# Plot im zweiten Subplot\nax2.plot(x, y2, label='cos(x)', color='orange')\nax2.set_title('Kosinusfunktion')\nax2.set_xlabel('x')\nax2.set_ylabel('cos(x)')\nax2.legend()\n\n# Layout anpassen und anzeigen\nplt.tight_layout()\nplt.show()<\/code><\/pre>\n\n\n\n<p>Das Programm verwendet neben MatPlotLib auch die NumPy-Bibliothek. Diese erm\u00f6glicht die Einbindung wissenschaftlicher Rechenmethoden in Python. Sie stellt unter anderem Arrays, eine Vielzahl mathematischer Funktionen und Operationen sowie Funktionen zur Datenmanipulation zur Verf\u00fcgung. Weitere Details zur NumPy-Bibliothek folgen in sp\u00e4teren Beitr\u00e4gen.<\/p>\n\n\n\n<p>In obigem Programm werden zun\u00e4chst Beispieldaten f\u00fcr Sinus- und Kosinusfunktionen erzeugt. Dabei ist np.linspace eine Funktion aus der NumPy-Bibliothek, die ein Array von 100 gleichm\u00e4\u00dfig verteilten Punkten zwischen 0 und 10 zur Verf\u00fcgung stellt. Dieses Array x wird als unabh\u00e4ngige Variable f\u00fcr die Funktionen sin und cos verwendet. Mit np.sin kommt eine Funktion aus der NumPy-Bibliothek zum Einsatz, die den Sinus jedes Elements im Array x berechnet. Das Ergebnis ist ein Array y1, das die Sinuswerte der entsprechenden x-Werte enth\u00e4lt. Entsprechend wird mit np.cos ein Array y2 f\u00fcr die Kosinuswerte berechnet. Diese drei Zeilen generieren also die Daten, die in den Subplots geplottet werden. Die x-Werte sind die Eingaben (die horizontale Achse) und y1 und y2 sind die Ausgaben (die vertikale Achse) f\u00fcr die Sinus- und Kosinusfunktionen. Zugleich demonstrieren sie eindrucksvoll die Leistungsf\u00e4higkeit der NumPy-Bibliothek.<br>Nach der Erzeugung von Daten wird eine \u201eFigure\u201c mit zwei Subplots nebeneinander (1 Reihe, 2 Spalten) aufgebaut. Im ersten Subplot (ax1) wird die Sinusfunktion geplottet, im zweiten Subplot (ax2) die Kosinusfunktion dargestellt. Die Methode plt.tight_layout() sorgt daf\u00fcr, dass die Subplots nicht \u00fcberlappen und alle Daten lesbar sind. Dies ist eine typische Python-Funktion, die versucht, alles so gut wie m\u00f6glich (best effort) zu erledigen. <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-blue-color\">Bild 3<\/mark> zeigt das Ergebnis.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized is-style-bordered\" style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"757\" src=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild3_Python6-1600x757.jpg\" alt=\"\" class=\"wp-image-6507\" style=\"width:800px\" srcset=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild3_Python6-1600x757.jpg 1600w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild3_Python6-300x142.jpg 300w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild3_Python6-768x363.jpg 768w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild3_Python6-1536x726.jpg 1536w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild3_Python6.jpg 1804w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><figcaption class=\"wp-element-caption\">Bild 3: Subplots<\/figcaption><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Farben, Linien und Marker<\/h2>\n\n\n\n<p>Die visuelle Gestaltung eines Diagramms ist entscheidend, um eine klare und verst\u00e4ndliche Darstellung der Daten zu gew\u00e4hrleisten. MatPlotLib bietet eine breite Palette von Stil-Optionen, um Diagramme nach Wunsch anzupassen. Zun\u00e4chst k\u00f6nnen Farben beliebig variiert werden. Linienfarben, Farbmarkierungen, Achsen- und Titelfarben sind frei w\u00e4hlbar. Sie k\u00f6nnen als HTML-Hex-Strings, HTML-Farbnamen oder als RGB-Tupel definiert werden, z. B. definiert<br>plt.plot(x, y, color=&#8220;green&#8220;)<br>die Linienfarbe als Gr\u00fcn.<\/p>\n\n\n\n<p>Dann kann \u00fcber Linienparameter und Marker-Anweisungen der Linientyp festgelegt werden. M\u00f6gliche Linienparameter sind durchgezogen, gestrichelt, gepunktet und andere Varianten. Die Form der Datenpunkte (Kreise, Dreiecke, Quadrate usw.) kann ebenfalls angepasst werden. Das Beispiel<br>plt.plot(x, y, linestyle=&#8216;&#8211;&#8218;, marker=&#8217;o&#8216;, color=&#8217;r&#8216;) liefert gestrichelte Linien mit Kreismarkern in rot<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-blue-color\"> (siehe Bild 4, <\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-black-color\">Programm <\/mark>Styles_marker.py<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-blue-color\">)<\/mark>:<\/p>\n\n\n\n<pre class=\"wp-block-code has-black-background-color has-background\" style=\"padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)\"><code>import matplotlib.pyplot as plt\nimport numpy as np\n\nx = np.linspace(0, 10, 100)\ny1 = np.sin(x)\ny2 = np.cos(x)\n\nfig, (ax1, ax2) = plt.subplots(1, 2, figsize=(6, 3))\n\nax1.plot(x, y1, label='sin(x)', color='g', linestyle=':', marker='.')\nax2.plot(x, y2, label='cos(x)', color='r', linestyle='--', marker='o')\n\nplt.tight_layout()\nplt.show()<\/code><\/pre>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full is-resized is-style-bordered\" style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"1066\" height=\"518\" src=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild4_Python6.jpg\" alt=\"\" class=\"wp-image-6508\" style=\"object-fit:cover;width:605px;height:auto\" srcset=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild4_Python6.jpg 1066w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild4_Python6-300x146.jpg 300w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild4_Python6-768x373.jpg 768w\" sizes=\"auto, (max-width: 1066px) 100vw, 1066px\" \/><figcaption class=\"wp-element-caption\">Bild 4: Festlegung von Linientypen und Markern<\/figcaption><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Text und Annotationen f\u00fcr Erkl\u00e4rungen und Beschriftungen<\/h2>\n\n\n\n<p>MatPlotLib erm\u00f6glicht es auch, Texte innerhalb des Diagramms zu platzieren. Zudem k\u00f6nnen Beschriftungen f\u00fcr Achsen, Titel f\u00fcr die Achsen und die Figur sowie Legenden hinzugef\u00fcgt werden. Mit sogenannten Annotationen kann Text an einer bestimmten Position im Diagramm platziert werden.<br>Mit Pfeilen kann man auf Bereiche mit besonderer Bedeutung hinweisen:<br>ax.annotate(&#8218;Wichtiger Punkt&#8216;, xy=(2, 1), xytext=(3, 1.5), arrowprops=dict(facecolor=&#8217;black&#8216;, shrink=0.05))<\/p>\n\n\n\n<p>Wenn Diagramme mit Texten, Beschriftungen und Annotationen versehen werden, kann dies die Aussagekraft und Klarheit von Visualisierungen entscheidend verbessern. Einige M\u00f6glichkeiten, wie Text und Annotationen in MatPlotLib verwendet werden k\u00f6nnen, sind:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Titel und \u00dcberschriften:<\/strong> Sie helfen, den Inhalt auf den ersten Blick zu verstehen.<\/li>\n\n\n\n<li><strong>Achsenbeschriftungen<\/strong> erkl\u00e4ren, welche Werte die Achsen darstellen und geben den Daten einen klaren Kontext.<\/li>\n\n\n\n<li><strong>Legenden<\/strong> helfen, verschiedene Datenreihen oder Kategorien innerhalb eines Diagramms zu identifizieren.<\/li>\n\n\n\n<li><strong>Annotationen<\/strong> k\u00f6nnen als spezifische Hinweise oder Markierungen an besonderen Datenpunkten angebracht werden.<\/li>\n\n\n\n<li><strong>Text<\/strong> kann an beliebigen Stellen im Diagramm platziert werden, um bestimmte Bereiche zu beschreiben oder zu kommentieren.<\/li>\n<\/ul>\n\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-blue-color\">Bild 5<\/mark> veranschaulicht dies f\u00fcr eine Anwendung in der Wechselstromtechnik.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized is-style-bordered\" style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"1076\" src=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild5_Python6-1600x1076.jpg\" alt=\"\" class=\"wp-image-6509\" style=\"width:750px\" srcset=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild5_Python6-1600x1076.jpg 1600w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild5_Python6-300x202.jpg 300w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild5_Python6-768x516.jpg 768w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild5_Python6-1536x1033.jpg 1536w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild5_Python6.jpg 1804w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><figcaption class=\"wp-element-caption\">Bild 5: Festlegung von Linientypen und Markern in der Wechselstromtechnik<\/figcaption><\/figure>\n\n\n\n<p>Das Programm (E_tech.py) zu dieser Grafik sieht so aus:<\/p>\n\n\n\n<pre class=\"wp-block-code has-black-background-color has-background\" style=\"padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)\"><code>import MatPlotLib.pyplot as plt\nimport MatPlotLib.pyplot as plt\nimport numpy as np\n\n# Beispiel-Daten\nx = np.linspace(0, 10, 100)\ny1 = np.sin(x)\ny2 = np.cos(x)\n\nplt.figure(figsize=(10, 6))\n\nplt.plot(x, y1, label='Strom', color='blue', linestyle='-', marker='o')\nplt.plot(x, y2, label='Spannung', color='orange', linestyle='--', marker='^')\n\nplt.title('Strom und Spannung im Wechselstromkreis', fontsize=14)\n\nplt.xlabel('Zeit in Millisekunden (t)', fontsize=12)\nplt.ylabel('Spannung in Volt (u)', fontsize=12)\n\nplt.legend()\nplt.annotate('Nulldurchgang', xy=(np.pi, np.sin(np.pi)), xytext=(np.pi+0.2, np.sin(np.pi)+0.8),\n    arrowprops=dict(facecolor='black', shrink=0.05),\n    fontsize=12, color='red')\n\nplt.text(10.8, 0.5, 'Halbwertsh\u00f6he', fontsize=12, color='green')\n\nplt.grid(True)\nplt.tight_layout()\nplt.show()<\/code><\/pre>\n\n\n\n<p>Das Programm erstellt ein Diagramm mit einer Sinus- und einer Kosinusfunktion, die in \u201eStrom&#8220; und \u201eSpannung&#8220; im Wechselstromkreis bezeichnet werden. Zun\u00e4chst werden hierzu die erforderlichen Bibliotheken importiert:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>MatPlotLib.pyplot wird f\u00fcr das Plotten von Grafiken verwendet.<\/li>\n\n\n\n<li>numpy wird genutzt, um mathematische Berechnungen durchzuf\u00fchren und Arrays zu erzeugen.<\/li>\n<\/ul>\n\n\n\n<p>Dann werden die Beispieldaten erzeugt. Dazu wird ein Array (x) von 100 gleichm\u00e4\u00dfig verteilten Punkten zwischen 0 und 10 erstellt. Die Sinusfunktion (y1) von x wird berechnet und gespeichert, sie repr\u00e4sentiert den \u201eStrom&#8220;. Dann wird die Kosinusfunktion (y2) von x berechnet, sie repr\u00e4sentiert die \u201eSpannung&#8220;.<br>Danach wird ein Plot-Fenster erstellt. Die Sinuskurve (y1) wird mit einer durchgezogenen blauen Linie und Kreismarkern dargestellt, die Cosinuskurve (y2) mit einer gestrichelten orangen Linie und Dreieckmarkern.<br>Anschlie\u00dfend wird der Titel \u201eStrom und Spannung im Wechselstromkreis\u201c hinzugef\u00fcgt.<br>Zudem wird die x-Achse mit \u201eZeit in Millisekunden (t)\u201c und die y-Achse mit \u201eSpannung in Volt (u)\u201c beschriftet.<br>Die Legende kennzeichnet die beiden Kurven als \u201eStrom\u201c und \u201eSpannung\u201c. Eine Annotation weist auf den \u201eNulldurchgang\u201c der Sinusfunktion hin. Dies wird durch einen roten Text und einen Pfeil markiert, der auf den Punkt bei t = \u2192 zeigt, an dem der Sinuswert 0 ist.<br>Dann wird ein gr\u00fcner Text \u201eHalbwertsh\u00f6he\u201c als zus\u00e4tzliche Information am oberen rechten Rand hinzugef\u00fcgt. Zudem wird ein x\/y-Raster eingeblendet (plt.grid(True)), um das Ablesen der Kurven zu erleichtern. Das Layout wird so angepasst, dass alles gut sichtbar und nicht \u00fcberlappend dargestellt wird (plt.tight_layout()). Zum Schluss wird das Diagramm mit plt.show() angezeigt. Dieses Programm veranschaulicht die zeitabh\u00e4ngige Ver\u00e4nderung von Strom und Spannung in einem Wechselstromkreis und nutzt dabei grundlegende mathematische Funktionen (Sinus und Kosinus) zur Modellierung.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Diagrammtypen in allen Variationen<\/h2>\n\n\n\n<p>Neben den oben vorgestellten Liniendiagrammen bietet MatPlotLib noch eine Vielzahl weiterer Darstellungsm\u00f6glichkeiten. Balkendiagramme eignen sich hervorragend, um Daten zu vergleichen. Sie k\u00f6nnen verwendet werden, um auch gro\u00dfe Gruppen von Datenpunkten schnell zu erfassen. Die Anweisung<br>plt.bar(x, y) erstellt ein vertikales Balkendiagramm. Balkendiagramme eignen sich zudem bestens, um Unterschiede und Trends zwischen verschiedenen Kategorien klar und \u00fcbersichtlich darzustellen.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Sie werden h\u00e4ufig im Bereich Wirtschaft und Finanzen verwendet. Hier dienen sie zum Vergleich von Ums\u00e4tzen, Gewinnen oder Kosten in verschiedenen Zeitr\u00e4umen oder Unternehmen. Auch beim Vergleich von Umfrage- oder Testergebnissen sind sie oft zu finden. In der Politik dienen sie h\u00e4ufig der Darstellung von Bev\u00f6lkerungsdaten wie Altersgruppen, Geschlecht, Bildung oder Einkommen, der Visualisierung von Wahlergebnissen oder politischen Pr\u00e4ferenzen. <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-blue-color\">Bild 6 <\/mark>zeigt ein typisches Balkendiagramm aus dem Bereich der Marktanalyse.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large is-style-bordered\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"1076\" src=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild6_Python6-1600x1076.jpg\" alt=\"\" class=\"wp-image-6510\" srcset=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild6_Python6-1600x1076.jpg 1600w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild6_Python6-300x202.jpg 300w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild6_Python6-768x516.jpg 768w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild6_Python6-1536x1033.jpg 1536w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild6_Python6.jpg 1804w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><figcaption class=\"wp-element-caption\">Bild 6: Balkendiagramm<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>Das zugeh\u00f6rige Programm (BarGraphics.py) f\u00e4llt recht kompakt aus:<\/p>\n\n\n\n<pre class=\"wp-block-code has-black-background-color has-background\" style=\"padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)\"><code>import MatPlotLib.pyplot as plt\nimport numpy as np\n# Beispiel-Daten\nkategorien = &#91;'Widerst\u00e4nde', 'Kondensatoren', 'Transistoren', 'LEDs', 'Taster']\nwerte = &#91;10, 8, 12, 7, 3]\n\nplt.figure(figsize=(10, 6))\n\nplt.bar(kategorien, werte, color='skyblue', edgecolor='black')\n\nplt.title('Marktanteile elektronischer Komponenten', fontsize=14)\nplt.xlabel('Kategorie', fontsize=12)\nplt.ylabel('Marktvolumen in M\u20ac', fontsize=12)\n\nfor i, value in enumerate(werte):\n    plt.text(i, value + 0.2, str(value), ha='center', fontsize=10)\n\nplt.tight_layout()\nplt.show()<\/code><\/pre>\n\n\n\n<p>Der Python-Code erstellt ein Balkendiagramm, das den Marktanteil verschiedener elektronischer Komponenten darstellt. Hierzu wird eine Liste mit Kategorien verschiedener elektronischer Komponenten (Widerst\u00e4nde, Kondensatoren, Transistoren, LEDs und Taster) erzeugt. Die Werte-Liste enth\u00e4lt die entsprechenden Marktvolumen dieser Komponenten in Millionen Euro (M\u20ac). Die Kategorien werden auf der x-Achse angezeigt, w\u00e4hrend die Marktvolumen auf der y-Achse dargestellt werden. Die Balken werden in Hellblau (color=skyblue) mit schwarzen R\u00e4ndern (edgecolor=&#8217;black&#8216;) gezeichnet.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Der Titel des Diagramms lautet \u201eMarktanteile elektronischer Komponenten&#8220; und wird mit plt.title() angezeigt. Dann wird die x-Achse mit \u201eKategorie&#8220; und die y-Achse mit \u201eMarktvolumen in M\u20ac\u201c beschriftet. Zudem werden die Werte (Marktvolumen) direkt oberhalb der Balken als Text angezeigt, um den visuellen Vergleich zu erg\u00e4nzen. Abschlie\u00dfend wird wieder das Layout des Diagramms angepasst, um \u00dcberlappungen zu vermeiden (tight_layout()).<\/p>\n\n\n\n<p>Kreis- oder Tortendiagramme werden verwendet, um Proportionen und Anteile zu zeigen. Sie sind sehr effektiv, wenn es darum geht, den Beitrag eines Teils zum Ganzen darzustellen. <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-blue-color\">Bild 7<\/mark> zeigt ein entsprechendes Beispiel.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full is-style-bordered\"><img loading=\"lazy\" decoding=\"async\" width=\"1022\" height=\"1072\" src=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild7_Python6.jpg\" alt=\"\" class=\"wp-image-6511\" srcset=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild7_Python6.jpg 1022w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild7_Python6-286x300.jpg 286w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild7_Python6-768x806.jpg 768w\" sizes=\"auto, (max-width: 1022px) 100vw, 1022px\" \/><figcaption class=\"wp-element-caption\">Bild 7: Kreisdiagramm<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>Das Programm dazu (PiePlot.py) sieht so aus:<\/p>\n\n\n\n<pre class=\"wp-block-code has-black-background-color has-background\" style=\"padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)\"><code>import matplotlib.pyplot as plt\n\n# Beispiel-Daten\nkategorien = &#91;'Rosen', 'Tulpen', 'Lilien', 'Orchideen', 'Andere']\nwerte = &#91;50, 20, 15, 10, 5]\n\nplt.figure(figsize=(8, 8))\n\nplt.pie(werte, labels=kategorien, autopct='%1.1f%%',colors=&#91;'orangered', 'salmon', 'lightcoral', 'darksalmon', 'mistyrose'],startangle=0)\n\nplt.title('Beliebtheit von Blumenarten', fontsize=14)\nplt.tight_layout()\nplt.show()<\/code><\/pre>\n\n\n\n<p>Die Anweisung<br>plt.pie(sizes, labels=labels, autopct=&#8217;%1.1f%%&#8216;)<br>sorgt hier daf\u00fcr, dass die Daten in einem klassischen Tortendiagramm angezeigt werden. <\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Der Rest des Programms erstellt in bekannter Weise die \u00dcberschrift und die Bezeichnungen. Violinplots sind eine weniger h\u00e4ufig genutzte Variante von Boxplots und Dichtediagrammen. Sie sollen hier jedoch ebenfalls angesprochen werden, da sie zeigen, wie vielf\u00e4ltig Python eingesetzt werden kann. Violinplots erm\u00f6glichen es, die Dichte der Daten bei verschiedenen Werten anschaulich darzustellen. Das folgende Beispiel (Violinplot.py) erzeugt den Violinplot in <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-blue-color\">Bild 8<\/mark>.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full is-style-bordered\"><img loading=\"lazy\" decoding=\"async\" width=\"1270\" height=\"986\" src=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild8_Python6.jpg\" alt=\"\" class=\"wp-image-6512\" srcset=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild8_Python6.jpg 1270w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild8_Python6-300x233.jpg 300w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild8_Python6-768x596.jpg 768w\" sizes=\"auto, (max-width: 1270px) 100vw, 1270px\" \/><figcaption class=\"wp-element-caption\">Bild 8: Violinplot<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<pre class=\"wp-block-code has-black-background-color has-background\" style=\"padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)\"><code>import MatPlotLib.pyplot as plt\nimport numpy as np\n\n# Daten erstellen\nnp.random.seed(10)\ndata = &#91;np.random.normal(loc=0, scale=1, size=100),\n        np.random.normal(loc=1, scale=2, size=100),\n        np.random.normal(loc=-1, scale=1.5, size=100),\n        np.random.normal(loc=2, scale=1, size=100)]\n\nplt.figure(figsize=(10, 6))\nplt.violinplot(data, showmeans=False, showmedians=True, showextrema=True)\n\nplt.title('Ausfallwahrscheinlichkeiten von Bauelementen')\nplt.xlabel('Gruppe')\nplt.ylabel('Wert')\nplt.xticks(&#91;1, 2, 3, 4], &#91;'Elko', 'Tantals', 'Ceramics', 'Styroflex']) # x-Achsen-Beschriftungen\n\nplt.show()<\/code><\/pre>\n\n\n\n<p>Hier wird wieder NumPy verwendet, um einen Testdatensatz zu erstellen. Mit<br>np.random.seed(10)<br>wird der Startpunkt f\u00fcr den Zufallszahlengenerator gesetzt.<br><br>\u00dcber data = [&#8230;] werden vier Datengruppen erstellt, jede mit 100 Werten (\u201esize&#8220;). Diese Gruppen repr\u00e4sentieren Daten mit unterschiedlichen Mittelwerten (loc) und Standardabweichungen (scale):<\/p>\n\n\n\n<p>Gruppe 1: Mittelwert = 0, Standardabweichung = 1<br>Gruppe 2: Mittelwert = 1, Standardabweichung = 2<br>Gruppe 3: Mittelwert = -1, Standardabweichung = 1,5<br>Gruppe 4: Mittelwert = 2, Standardabweichung = 1<\/p>\n\n\n\n<p>Der Code visualisiert dann die Verteilung von vier Datengruppen. Jede Gruppe besteht aus den 100 zuf\u00e4lligen Werten mit unterschiedlichen Mittelwerten und Standardabweichungen. Der Plot zeigt die Verteilung jeder Gruppe, einschlie\u00dflich der Mediane und Extremwerte, und verwendet spezifische Beschriftungen f\u00fcr die x-Achse (\u201eGruppe\u201c).<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Fortgeschrittene Diagrammtypen: Konturdiagramme, 3D-Plots und mehr<\/h2>\n\n\n\n<p>Um den Rahmen dieses Beitrags nicht zu sprengen, soll die Darstellung von 3D- oder Konturdiagrammen hier nur kurz angesprochen werden. Konturdiagramme werden verwendet, um dreidimensionale Daten zweidimensional darzustellen. Sie sind besonders n\u00fctzlich, um H\u00f6henlinien in topografischen Darstellungen zu zeigen oder um Optimierungsschwerpunkte z. B. bei KI-Anwendungen zu visualisieren. 3D-Plots sind hilfreich, um Beziehungen in Daten zu visualisieren, die drei Dimensionen haben. MatPlotLib bietet Werkzeuge, um 3D-Linien-, Balken- und Streudiagramme zu erstellen. Diese fortgeschrittenen Diagrammtypen er\u00f6ffnen neue M\u00f6glichkeiten f\u00fcr die Datenanalyse und -visualisierung, indem sie es erm\u00f6glichen, komplexe Muster und Beziehungen auf einfache und intuitive Weise darzustellen. Im folgenden Kapitel werden verschiedene Verfahren der Datenbearbeitung und -verarbeitung sowie der Visualisierung vorgestellt, um die Grundlage f\u00fcr effektive und aussagekr\u00e4ftige Diagramme zu legen. <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-blue-color\">Bild 9 <\/mark>und<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-blue-color\"> Bild 10<\/mark> zeigen jeweils ein Beispiel f\u00fcr einen Kontur- und einen 3D-Plot.<\/p>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-bottom is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-bottom is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full is-style-bordered\" style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"1564\" height=\"1207\" src=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild10_Python6.jpg\" alt=\"\" class=\"wp-image-6514\" srcset=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild10_Python6.jpg 1564w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild10_Python6-300x232.jpg 300w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild10_Python6-768x593.jpg 768w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild10_Python6-1536x1185.jpg 1536w\" sizes=\"auto, (max-width: 1564px) 100vw, 1564px\" \/><figcaption class=\"wp-element-caption\">Bild 10: 3D-Plot<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-bottom is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full is-resized is-style-bordered\" style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"1283\" height=\"1078\" src=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild9_Python6.jpg\" alt=\"\" class=\"wp-image-6513\" style=\"width:485px\" srcset=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild9_Python6.jpg 1283w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild9_Python6-300x252.jpg 300w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild9_Python6-768x645.jpg 768w\" sizes=\"auto, (max-width: 1283px) 100vw, 1283px\" \/><figcaption class=\"wp-element-caption\">Bild 9: Konturplot<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>Im Konturplot-Programm (Kontur.py):<\/p>\n\n\n\n<pre class=\"wp-block-code has-black-background-color has-background\" style=\"padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)\"><code>import numpy as np\nimport MatPlotLib.pyplot as plt\n\n# Erstellen von Beispiel-Daten\nx = np.linspace(-5, 5, 100)\ny = np.linspace(-5, 5, 100)\nX, Y = np.meshgrid(x, y)\nZ = np.sin(np.sqrt(X**2 + Y**2))\n\nplt.figure(figsize=(8, 6))\ncontour = plt.contourf(X, Y, Z, cmap='viridis')\nplt.colorbar(contour)  # Farbskala hinzuf\u00fcgen\n\nplt.xlabel('X-Achse')\nplt.ylabel('Y-Achse')\n\nplt.show()<\/code><\/pre>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>werden wieder zun\u00e4chst Daten erstellt. Die Ausf\u00fchrung des Plots erfolgt mit plt.contourf(), mit cmap=&#8217;viridis&#8216; wird die Farbkarte festlegt. Plt.colorbar f\u00fcgt eine Farbskala hinzu. Es folgen die Beschriftungen und schlie\u00dflich wird der Plot wieder mit plt.show() angezeigt.<br>Das 3D-Programm (3D-Plot.py) arbeitet \u00e4hnlich wie der Konturplot:<\/p>\n\n\n\n<pre class=\"wp-block-code has-black-background-color has-background\" style=\"padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)\"><code>import numpy as np\nimport matplotlib.pyplot as plt\nfrom mpl_toolkits.mplot3d import Axes3D\n\n# Erstellen von Beispiel-Daten\nx = np.linspace(-5, 5, 100)\ny = np.linspace(-5, 5, 100)\nX, Y = np.meshgrid(x, y)\nZ = np.sin(np.sqrt(X**2 + Y**2))\n\n# Erstellen des 3D-Plots\nfig = plt.figure(figsize=(10, 7))\nax = fig.add_subplot(111, projection='3d')\nax.plot_surface(X, Y, Z, cmap='coolwarm')\n\n# Achsenbeschriftungen und Titel\nax.set_title('3D-Plot')\nax.set_xlabel('X-Achse')\nax.set_ylabel('Y-Achse')\nax.set_zlabel('Z-Achse')\n\n# Plot anzeigen\nplt.show()<\/code><\/pre>\n\n\n\n<p>Die Daten werden durch np.linspace erzeugt. Die Funktion np.meshgrid erstellt daraus 2D-Gitter f\u00fcr X und Y. Z enth\u00e4lt die Funktionswerte, hier durch eine abfallende Sinusfunktion definiert. Die Anweisung<br>ax = fig.add_subplot(111, projection=&#8217;3d&#8216;)<br>f\u00fchrt den eigentlichen 3D-Plot aus.<br>Mit ax.plot_surface(X, Y, Z, cmap=&#8217;viridis&#8216;) wird die gleiche Farbkarte (viridis) wie im Konturplot verwendet.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Komplexe Grafiken<\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Einfache 2D\/3D-, Balken- oder Tortengrafiken k\u00f6nnen auch mit anderen Programmen wie Excel oder LibreOffice erstellt werden. Bei komplexeren Grafikaufgaben, die eine Vielzahl von Elementen enthalten, sto\u00dfen Excel oder LibreOffice jedoch schnell an Grenzen. Hier kann MatPlotLib seine volle St\u00e4rke ausspielen. <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-blue-color\">Bild 11<\/mark> zeigt die Darstellung eines elektrischen Dipols sowohl mit Feldlinien als auch mit \u00c4quipotentialfl\u00e4chen. Zudem wurde hier nicht die klassische X\/Y-Darstellung, sondern ein Polarkoordinatensystem gew\u00e4hlt. Das Programm hierzu ist naturgem\u00e4\u00df bereits etwas umfangreicher (Field.py). Wenn dieser Artikel sorgf\u00e4ltig durchgearbeitet wurde, sollte das Verst\u00e4ndnis des Codes allerdings kein Problem mehr darstellen, da alle verwendeten Bild- sowie Codeelemente bereits eingesetzt und erl\u00e4utert wurden.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full is-style-bordered\" style=\"margin-top:0;margin-bottom:0\"><img loading=\"lazy\" decoding=\"async\" width=\"1147\" height=\"1141\" src=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild11_Python6.jpg\" alt=\"\" class=\"wp-image-6515\" style=\"object-fit:cover\" srcset=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild11_Python6.jpg 1147w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild11_Python6-300x298.jpg 300w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild11_Python6-250x250.jpg 250w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild11_Python6-768x764.jpg 768w\" sizes=\"auto, (max-width: 1147px) 100vw, 1147px\" \/><figcaption class=\"wp-element-caption\">Bild 11: Komplexe Gradientengrafik<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Unbegrenzte M\u00f6glichkeiten: Animationen<\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:65%\">\n<p>Mit Python ist es nicht nur m\u00f6glich, statische Grafiken darzustellen, sondern auch bewegte Animationen umzusetzen. Das folgende Programm (QuantumAnimation.py) erzeugt eine animierte, durchlaufende Wellenst\u00f6rung. <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-blue-color\">Bild 12<\/mark> zeigt einen stehenden Ausschnitt. Die durchlaufende Animation kann nat\u00fcrlich nur nach dem Starten des Python-Programms dargestellt werden.<br>Die Erstellung animierter Grafiken erfordert dabei ein tiefergehendes Verst\u00e4ndnis der Grafikprogrammierung. Eine ausf\u00fchrliche Diskussion des zugeh\u00f6rigen Programms wird hier nicht beschrieben, da dies den Rahmen dieses Artikels sprengen w\u00fcrde. Das Beispiel soll lediglich zeigen, dass auch der Raspberry Pi in der Lage ist, animierte Grafiken fl\u00fcssig darzustellen.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large is-style-bordered\" style=\"margin-top:0;margin-bottom:0\"><img loading=\"lazy\" decoding=\"async\" width=\"940\" height=\"1600\" src=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild12_Python6-940x1600.jpg\" alt=\"\" class=\"wp-image-6504\" style=\"object-fit:cover\" srcset=\"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild12_Python6-940x1600.jpg 940w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild12_Python6-176x300.jpg 176w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild12_Python6-768x1307.jpg 768w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild12_Python6-902x1536.jpg 902w, https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Bild12_Python6.jpg 1048w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><figcaption class=\"wp-element-caption\">Bild 12: Simulation einer Wellenst\u00f6rung<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group is-style- has-gray-lightest-100-background-color has-background is-layout-constrained wp-container-core-group-is-layout-ff778368 wp-block-group-is-layout-constrained\" style=\"padding-right:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)\">\n<h2 class=\"wp-block-heading\">Erg\u00e4nzungen und \u00dcbungen<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Erstellen Sie ein Liniendiagramm, das den Bremsweg eines Fahrzeugs darstellt.<\/li>\n\n\n\n<li>Ver\u00e4ndern Sie die Farben und Symboldarstellungen in den <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-blue-color\">Bildern 2 und 3<\/mark>.<\/li>\n\n\n\n<li>Erstellen Sie ein Balkendiagramm f\u00fcr den Ausgang einer Bundestagswahl.<\/li>\n\n\n\n<li>Experimentieren Sie mit verschiedenen Farbkarten und f\u00e4rben Sie die <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-blue-color\">Bilder 9 und 10 <\/mark>mit verschiedenen Colormaps wie z. B.<br>&#8211; plasma: von dunkelviolett zu gelb<br>&#8211; inferno: von schwarz zu gelb<br>&#8211; magma: von schwarz zu wei\u00df<br>&#8211; cividis: von dunkelblau zu gelb<br><\/li>\n<\/ul>\n<\/div>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Ausblick<\/h2>\n\n\n\n<p>In diesem Beitrag stand die Erstellung von Grafiken mit Python im Vordergrund. Es wurde gezeigt, dass Python ein leistungsf\u00e4higes Werkzeug zur Erstellung verschiedenster Visualisierungen ist. Dabei k\u00f6nnen nicht nur einfache XY- oder Balkendiagramme erstellt werden, sondern auch durchaus komplexe Grafiken, die mit anderen Programmen wie z. B. Excel oder LibreOffice kaum bzw. gar nicht machbar w\u00e4ren. Selbst animierte Grafiken stellen f\u00fcr Python und den Raspberry Pi kein Problem dar. Im n\u00e4chsten Artikel wird es wieder etwas technischer werden, insbesondere werden dann Eingabemethoden genauer betrachtet. Beginnend mit einfachen Tastern spannt sich der Bogen dabei von Tastern \u00fcber Dreh-Encoder bis hin zu Matrix-Tastaturen. Dabei wird immer auch wieder auf grafische Ausgaben mit der MatPlotLib zur\u00fcckgegriffen, um z. B. Eingabedaten visuell ansprechend darzustellen.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Material<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Raspberry Pi mit Netzteil<\/li>\n<\/ul>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-gray-lightest-100-background-color has-background\" style=\"padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)\"><strong>\u00dcber den Autor<br><\/strong>Dr. G\u00fcnter Spanner ist als Autor zu den Themen Elektronik, Sensortechnik und Mikrocontroller einem weiten Fachpublikum bekannt. Schwerpunkt seiner hauptberuflichen T\u00e4tigkeit f\u00fcr verschiedene Gro\u00dfkonzerne wie Siemens und ABB ist die Projektleitung im Bereich Entwicklung und Technologie-Management. Der Dozent fu\u0308r Physik und Elektrotechnik hat zudem zahlreiche Fachartikel und Bu\u0308cher vero\u0308ffentlicht sowie Kurse und Lernpakete erstellt.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mit Matplotlib verwandeln Sie Daten in anschauliche Grafiken \u2013 von schnellen Pyplot-Plots bis zu wissenschaftlichen Visualisierungen. Dieser Teil zeigt Ihnen praxisnah alle Basics bis zu 3D und Animationen.<\/p>\n","protected":false},"author":30,"featured_media":864,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[34],"tags":[974,973,975,976,977],"post-author":[137],"class_list":["post-4365","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python-micropython","tag-3d-plot-konturplot","tag-matplotlib-tutorial-deutsch","tag-numpy-scipy-visualisierung","tag-python-diagramme-erstellen","tag-subplots-achsen-figure","post-author-dr-guenter-spanner"],"acf":[],"info":{"thumbnail":{"url":"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/header_phyton_teil11.jpg","alt":""},"teaserImage":{"ID":4830,"id":4830,"title":"liste-beitrag_python_t6_neu","filename":"Liste-Beitrag_python_t6_neu.jpg","filesize":96968,"url":"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Liste-Beitrag_python_t6_neu.jpg","link":"https:\/\/de.elv.com\/elvjournal\/python-einstieg-teil6-matplotlib-grafiken\/liste-beitrag_python_t6_neu\/","alt":"","author":"5","description":"","caption":"","name":"liste-beitrag_python_t6_neu","status":"inherit","uploaded_to":4365,"date":"2025-09-29 12:19:31","modified":"2025-09-29 12:22:54","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/elvjournal.elv.com\/wp-includes\/images\/media\/default.png","width":433,"height":274,"sizes":{"thumbnail":"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Liste-Beitrag_python_t6_neu-250x250.jpg","thumbnail-width":250,"thumbnail-height":250,"medium":"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Liste-Beitrag_python_t6_neu-300x190.jpg","medium-width":300,"medium-height":190,"medium_large":"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Liste-Beitrag_python_t6_neu.jpg","medium_large-width":433,"medium_large-height":274,"large":"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Liste-Beitrag_python_t6_neu.jpg","large-width":433,"large-height":274,"1536x1536":"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Liste-Beitrag_python_t6_neu.jpg","1536x1536-width":433,"1536x1536-height":274,"2048x2048":"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Liste-Beitrag_python_t6_neu.jpg","2048x2048-width":433,"2048x2048-height":274,"gform-image-choice-sm":"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Liste-Beitrag_python_t6_neu.jpg","gform-image-choice-sm-width":300,"gform-image-choice-sm-height":190,"gform-image-choice-md":"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Liste-Beitrag_python_t6_neu.jpg","gform-image-choice-md-width":400,"gform-image-choice-md-height":253,"gform-image-choice-lg":"https:\/\/elvjournal.elv.com\/wp-content\/uploads\/Liste-Beitrag_python_t6_neu.jpg","gform-image-choice-lg-width":433,"gform-image-choice-lg-height":274}},"categories":[{"id":34,"name":"Python &amp; MicroPython","slug":"python-micropython"}],"authors":[{"id":137,"name":"Dr. G\u00fcnter Spanner","slug":"dr-guenter-spanner"}],"document":false,"epaper":"","date":"6. Mai 2026","excerpt":"Mit Matplotlib verwandeln Sie Daten in anschauliche Grafiken \u2013 von schnellen Pyplot-Plots bis zu wissenschaftlichen Visualisierungen. Dieser Teil zeigt Ihnen praxisnah alle Basics bis zu 3D und Animationen."},"_links":{"self":[{"href":"https:\/\/de.elv.com\/elvjournal\/wp-json\/wp\/v2\/posts\/4365","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/de.elv.com\/elvjournal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/de.elv.com\/elvjournal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/de.elv.com\/elvjournal\/wp-json\/wp\/v2\/users\/30"}],"replies":[{"embeddable":true,"href":"https:\/\/de.elv.com\/elvjournal\/wp-json\/wp\/v2\/comments?post=4365"}],"version-history":[{"count":10,"href":"https:\/\/de.elv.com\/elvjournal\/wp-json\/wp\/v2\/posts\/4365\/revisions"}],"predecessor-version":[{"id":13296,"href":"https:\/\/de.elv.com\/elvjournal\/wp-json\/wp\/v2\/posts\/4365\/revisions\/13296"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/de.elv.com\/elvjournal\/wp-json\/wp\/v2\/media\/864"}],"wp:attachment":[{"href":"https:\/\/de.elv.com\/elvjournal\/wp-json\/wp\/v2\/media?parent=4365"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/de.elv.com\/elvjournal\/wp-json\/wp\/v2\/categories?post=4365"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/de.elv.com\/elvjournal\/wp-json\/wp\/v2\/tags?post=4365"},{"taxonomy":"post-author","embeddable":true,"href":"https:\/\/de.elv.com\/elvjournal\/wp-json\/wp\/v2\/post-author?post=4365"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}