首頁 >後端開發 >Python教學 >如何使用自訂程式碼為 Matplotlib 長條圖新增群組標籤?

如何使用自訂程式碼為 Matplotlib 長條圖新增群組標籤?

Linda Hamilton
Linda Hamilton原創
2024-11-17 09:41:03374瀏覽

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

使用自訂程式碼來標記條形圖群組

要將群組標籤新增至長條圖,可以考慮一種方法,特別是如果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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn