현재 공식 API 문서는 막대 차트의 소스 코드 예제만 제공합니다. 플랫폼이 너무 바빠서 문서를 작성할 시간이 없을 수도 있습니다!
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()
pip를 사용하여 pynimate 모듈을 직접 설치하세요. 이 모듈은 각 미러 스테이션에서 제공해야 하는 Python 버전 3.9 이상을 직접 지원한다는 점에 유의하세요.
pip install pynimate pip install matplotlib pip install pandas
설치가 완료된 후 현재 .py 모듈을 직접 시작하면 다음과 같은 동적 막대 차트 효과가 나타납니다.
다른 Python 시각화 모듈에 비해 pynimate는 동적 그래픽의 실행 과정을 GIF 형식의 동적 그림으로 직접 저장할 수 있다는 점에서 탁월합니다.
cnv.save("file", 24, "gif")
또한 pynimate 모듈의 작성자는 참조용으로 사용자 정의된 방식으로 시각적 동적 그래픽을 설정하는 방법도 제공합니다.
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()
위의 동적 막대 차트 효과는 사용자 정의를 통해 더욱 멋져 개발자가 더 많은 플레이 공간을 확보할 수 있습니다. 결과는 다음과 같습니다.
위 내용은 Python을 사용하여 동적 막대 차트를 생성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!