ホームページ > バックエンド開発 > Python チュートリアル > Matplotlib 積み上げ棒グラフでデータ ラベルを中央に配置する方法

Matplotlib 積み上げ棒グラフでデータ ラベルを中央に配置する方法

DDD
リリース: 2024-11-24 00:41:10
オリジナル
483 人が閲覧しました

How to Center Data Labels in a Matplotlib Stacked Bar Chart?

ラベルが中央に配置された積み上げ棒グラフ: matplotlib の bar_label

を使用した改良されたソリューション。積み上げられたデータ ラベルを正確に中央に配置するための洗練された方法棒グラフは、bar_label 関数を使用して利用できます。その方法は次のとおりです。

  1. 必要なモジュールをインポートします: 必須ライブラリをインポートすることから始めます。
import pandas as pd
import matplotlib.pyplot as plt
ログイン後にコピー
  1. 作成DataFrame を設定します。積み上げ棒グラフを作成するには、 pandas DataFrame を使用することをお勧めします。以下は、「A」、「B」、「C」の 3 つの列を持つ DataFrame の例です。
# sample DataFrame
df = pd.DataFrame({'A': [45, 17, 47], 'B': [91, 70, 72], 'C': [68, 43, 13]})
ログイン後にコピー
  1. 積み上げ棒グラフをプロットします:積み上げ棒をプロットするための DataFrame chart.
ax = df.plot(kind='bar', stacked=True, figsize=(8, 6), rot=0, xlabel='Class', ylabel='Count')
ログイン後にコピー
  1. 棒にラベルを付ける: 次に、棒が中央に配置されていることを確認しながら、棒にラベルを付けましょう。これを実現するには、bar_label を使用します。
for c in ax.containers:
    ax.bar_label(c, label_type='center')
ログイン後にコピー

オプションのカスタマイズ

  • ゼロまたは小さいラベル: ゼロのセグメントの場合値が小さい場合は、必要に応じてラベルの表示/非表示を調整します。たとえば、特定のしきい値を超えた場合にのみ値を表示するか、label_type='edge' オプションを使用します。
labels = [v.get_height() if v.get_height() > 0 else '' for v in c]  # for segments with small or zero values
ログイン後にコピー
  • カスタム形式: ラベルを変更します要件を満たすフォーマットにします。
ax.bar_label(c, fmt=lambda x: f'{x:.0f}' if x > 0 else '', label_type='center')  # to show no decimal places
ログイン後にコピー

Seaborn代替手段

seaborn を使用する場合は、積み上げ棒グラフを作成して棒にラベルを付けることもできます。

  1. DataFrame を準備します: matplotlib に、データを含む pandas DataFrame を作成します。
  2. Convert DataFrame を長い形式にします: seaborn では DataFrame が長い形式である必要がありますが、これはメルトを使用して実現できます。
  3. チャートをプロットし、棒にラベルを付けます: 積み上げ棒をプロットしますchart し、matplotlib.
のように bar_label を適用します。

以上がMatplotlib 積み上げ棒グラフでデータ ラベルを中央に配置する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート