Pada masa ini, dokumentasi API rasmi hanya menyediakan contoh kod sumber carta bar Mungkin platform terlalu sibuk dan tidak mempunyai masa untuk menulis dokumentasi!
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()
Gunakan pip terus untuk memasang modul pynimate Perlu diingat bahawa modul ini secara langsung menyokong python versi 3.9 atau lebih tinggi, yang harus disediakan oleh setiap stesen cermin.
pip install pynimate pip install matplotlib pip install pandas
Selepas pemasangan selesai, jika kami memulakan terus modul .py semasa, kesan carta bar dinamik berikut akan muncul.
Berbanding dengan modul visualisasi python yang lain, pynimate sangat baik kerana ia boleh menyimpan secara langsung proses pelaksanaan grafik dinamik sebagai gambar dinamik dalam format Gif.
cnv.save("file", 24, "gif")
Selain itu, pengarang modul pynimate juga menyediakan cara tersuai untuk menyediakan grafik dinamik visual untuk rujukan kami.
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()
Kesan carta bar dinamik yang dicapai melalui penyesuaian adalah lebih keren, memberikan lebih banyak ruang untuk pembangun untuk bermain. Hasilnya ditunjukkan di bawah.
Atas ialah kandungan terperinci Bagaimana untuk menjana carta bar dinamik menggunakan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!