Python을 사용하여 동적 막대 차트를 생성하는 방법

王林
풀어 주다: 2023-05-08 20:43:06
앞으로
1944명이 탐색했습니다.

현재 공식 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을 사용하여 동적 막대 차트를 생성하는 방법

다른 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을 사용하여 동적 막대 차트를 생성하는 방법

위 내용은 Python을 사용하여 동적 막대 차트를 생성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿