ホームページ > バックエンド開発 > Python チュートリアル > カスタム コードを使用して Matplotlib 棒グラフにグループ ラベルを追加するにはどうすればよいですか?

カスタム コードを使用して Matplotlib 棒グラフにグループ ラベルを追加するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-17 09:41:03
オリジナル
377 人が閲覧しました

How Can I Add Group Labels to a Matplotlib Bar Chart Using Custom Code?

カスタム コードを使用して棒グラフ グループにラベルを付ける

棒グラフにグループ ラベルを追加するには、特に次のような場合に検討できる 1 つのアプローチが考えられます。 matplotlib のネイティブな解決策は利用できません。カスタム関数を作成することです。方法は次のとおりです:

グループ ラベルのカスタム関数

def label_group_bar(ax, data):
    # Prepare data
    groups = mk_groups(data)
    xy = groups.pop()
    x, y = zip(*xy)
    ly = len(y)

    # Create bar chart
    xticks = range(1, ly + 1)
    ax.bar(xticks, y, align='center')
    ax.set_xticks(xticks)
    ax.set_xticklabels(x)
    ax.set_xlim(.5, ly + .5)
    ax.yaxis.grid(True)

    # Add lines for group separation
    scale = 1. / ly
    for pos in range(ly + 1):
        add_line(ax, pos * scale, -.1)

    # Add labels below groups
    ypos = -.2
    while groups:
        group = groups.pop()
        pos = 0
        for label, rpos in group:
            lxpos = (pos + .5 * rpos) * scale
            ax.text(lxpos, ypos, label, ha='center', transform=ax.transAxes)
            add_line(ax, pos * scale, ypos)
            pos += rpos
        add_line(ax, pos * scale, ypos)
        ypos -= .1
ログイン後にコピー

サポート関数

データの準備と行の作成を処理するには:

# Extract data groups and prepare for custom function
def mk_groups(data):
    ...

# Create vertical line in plot
def add_line(ax, xpos, ypos):
    ...
ログイン後にコピー

使用法

これを使用するには解決策:

# Import necessary modules
import matplotlib.pyplot as plt

# Sample data
data = ...

# Create plot and apply custom function
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
label_group_bar(ax, data)
fig.subplots_adjust(bottom=0.3)
fig.savefig('label_group_bar_example.png')
ログイン後にコピー

結果

このアプローチでは、棒グラフにグループ ラベルを追加して、データの視覚化をより有益なものにすることができます。

注: 代替ソリューション、さらに最適化されたソリューションについては、さらなる検討を歓迎します。

以上がカスタム コードを使用して Matplotlib 棒グラフにグループ ラベルを追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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