So erstellen Sie ein dynamisches Balkendiagramm mit Python

王林
Freigeben: 2023-05-08 20:43:06
nach vorne
1872 Leute haben es durchsucht

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()
Nach dem Login kopieren

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
Nach dem Login kopieren

Nachdem die Installation abgeschlossen ist, starten wir direkt das aktuelle .py-Modul und der folgende dynamische Balkendiagrammeffekt wird angezeigt.

So erstellen Sie ein dynamisches Balkendiagramm mit Python

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")
Nach dem Login kopieren

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()
Nach dem Login kopieren

Der obige dynamische Balkendiagrammeffekt ist durch die Anpassung cooler und lässt Entwicklern mehr Spielraum. Die Ergebnisse werden unten angezeigt.

So erstellen Sie ein dynamisches Balkendiagramm mit Python

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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!