Heim > Artikel > Backend-Entwicklung > So erstellen Sie ein dynamisches Balkendiagramm mit Python
Derzeit stellt die offizielle API-Dokumentation nur ein Quellcode-Beispiel für ein Balkendiagramm bereit. Möglicherweise ist die Plattform zu ausgelastet und hat keine Zeit, Dokumentation zu schreiben!
from matplotlib import pyplot as plt import pandas as pd import pynimate as nim df = pd.DataFrame( { "time": ["1960-01-01", "1961-01-01", "1962-01-01"], "Afghanistan": [1, 2, 3], "Angola": [2, 3, 4], "Albania": [1, 2, 5], "USA": [5, 3, 4], "Argentina": [1, 4, 5], } ).set_index("time") cnv = nim.Canvas() bar = nim.Barplot(df, "%Y-%m-%d", "2d") bar.set_time(callback=lambda i, datafier: datafier.data.index[i].strftime("%b, %Y")) cnv.add_plot(bar) cnv.animate() plt.show()
Verwenden Sie pip direkt, um das Pynimate-Modul zu installieren. Es ist zu beachten, dass dieses Modul Python-Versionen 3.9 oder höher direkt unterstützt, die von jeder Spiegelstation bereitgestellt werden sollten.
pip install pynimate pip install matplotlib pip install pandas
Nachdem die Installation abgeschlossen ist, starten wir direkt das aktuelle .py-Modul und der folgende dynamische Balkendiagrammeffekt wird angezeigt.
Im Vergleich zu anderen Python-Visualisierungsmodulen zeichnet sich Pynimate dadurch aus, dass es den Ausführungsprozess dynamischer Grafiken direkt als dynamische Bilder im GIF-Format speichern kann.
cnv.save("file", 24, "gif")
Darüber hinaus bietet der Autor des Pynimate-Moduls auch eine Möglichkeit, visuelle dynamische Grafiken als Referenz individuell einzurichten.
from matplotlib import pyplot as plt import numpy as np import pandas as pd import os dir_path = os.path.dirname(os.path.realpath(__file__)) import pynimate as nim def post_update(ax, i, datafier, bar_attr): ax.spines["top"].set_visible(False) ax.spines["right"].set_visible(False) ax.spines["bottom"].set_visible(False) ax.spines["left"].set_visible(False) ax.set_facecolor("#001219") for bar, x, y in zip( bar_attr.top_bars, bar_attr.bar_length, bar_attr.bar_rank, ): ax.text( x - 0.3, y, datafier.col_var.loc[bar, "continent"], ha="right", color="k", size=12, ) df = pd.read_csv(dir_path + "/data/sample.csv").set_index("time") col = pd.DataFrame( { "columns": ["Afghanistan", "Angola", "Albania", "USA", "Argentina"], "continent": ["Asia", "Africa", "Europe", "N America", "S America"], } ).set_index("columns") bar_cols = { "Afghanistan": "#2a9d8f", "Angola": "#e9c46a", "Albania": "#e76f51", "USA": "#a7c957", "Argentina": "#e5989b", } cnv = nim.Canvas(figsize=(12.8, 7.2), facecolor="#001219") bar = nim.Barplot( df, "%Y-%m-%d", "3d", post_update=post_update, rounded_edges=True, grid=False ) bar.add_var(col_var=col) bar.set_bar_color(bar_cols) bar.set_title("Sample Title", color="w", weight=600) bar.set_xlabel("xlabel", color="w") bar.set_time( callback=lambda i, datafier: datafier.data.index[i].strftime("%b, %Y"), color="w" ) bar.set_text( "sum", callback=lambda i, datafier: f"Total :{np.round(datafier.data.iloc[i].sum(),2)}", size=20, x=0.72, y=0.20, color="w", ) bar.set_bar_annots(color="w", size=13) bar.set_xticks(colors="w", length=0, labelsize=13) bar.set_yticks(colors="w", labelsize=13) bar.set_bar_border_props( edge_color="black", pad=0.1, mutation_aspect=1, radius=0.2, mutation_scale=0.6 ) cnv.add_plot(bar) cnv.animate() plt.show()
Der obige dynamische Balkendiagrammeffekt ist durch die Anpassung cooler und lässt Entwicklern mehr Spielraum. Die Ergebnisse werden unten angezeigt.
Das obige ist der detaillierte Inhalt vonSo erstellen Sie ein dynamisches Balkendiagramm mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!