亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python利用pandas和matplotlib實(shí)現(xiàn)繪制堆疊柱狀圖

 更新時(shí)間:2023年11月14日 08:48:37   作者:懸崖上的金魚  
在數(shù)據(jù)可視化中,堆疊柱狀圖是一種常用的圖表類型,它能夠清晰地展示多個(gè)類別的數(shù)據(jù),本文將演示如何使用 Python 的 pandas 和 matplotlib 庫(kù)繪制優(yōu)化的堆疊柱狀圖,需要的可以參考下

在數(shù)據(jù)可視化中,堆疊柱狀圖是一種常用的圖表類型,它能夠清晰地展示多個(gè)類別的數(shù)據(jù),并突出顯示每個(gè)類別中各部分的總量和組成比例。本文將演示如何使用 Python 的 pandas 和 matplotlib 庫(kù)繪制優(yōu)化的堆疊柱狀圖,并展示了銷售數(shù)量隨店鋪名稱變化的情況。

導(dǎo)入必要的庫(kù)

首先,我們需要導(dǎo)入 pandas 和 matplotlib.pyplot 庫(kù),并指定中文字體為黑體,代碼如下:

import pandas as pd
import matplotlib.pyplot as plt

plt.rcParams['font.family'] = ['SimHei']  # 指定中文字體為黑體

讀取數(shù)據(jù)

接下來,我們使用 pandas 的 read_excel 函數(shù)讀取 Excel 文件中的數(shù)據(jù),并指定讀取的工作表名稱為“Sheet3”,如下所示:

df = pd.read_excel(r'C:\Users\liuchunlin2\Desktop\新建文件夾\新建 XLSX 工作表.xlsx', sheet_name='Sheet3')

設(shè)置圖形參數(shù)

在繪制堆疊柱狀圖之前,我們需要設(shè)置柱狀圖的寬度和 x 軸的位置,代碼如下:

bar_width = 0.35  # 設(shè)置柱狀圖的寬度
x = df.index  # 設(shè)置x軸的位置

繪制堆疊柱狀圖

使用 matplotlib 庫(kù)的 subplots 函數(shù)創(chuàng)建圖形對(duì)象,并使用 bar 函數(shù)繪制堆疊柱狀圖,具體代碼如下:

fig, ax = plt.subplots()
rects1 = ax.bar(x, df['銷售數(shù)量'], bar_width, label='銷售數(shù)量')
rects2 = ax.bar(x, df['銷售數(shù)量2'], bar_width, bottom=df['銷售數(shù)量'], label='銷售數(shù)量2')

添加標(biāo)簽和標(biāo)題

我們?yōu)閳D形添加軸標(biāo)簽、標(biāo)題、刻度和圖例,使其更具可讀性,具體代碼如下:

ax.set_xlabel('店鋪名稱')
ax.set_ylabel('銷售數(shù)量')
ax.set_title('Stacked Bar Chart')
ax.set_xticks(x)
ax.set_xticklabels(df['店鋪名稱'])
ax.legend()

顯示數(shù)據(jù)標(biāo)簽

最后,我們使用 annotate 函數(shù)在每個(gè)柱子上方顯示數(shù)據(jù)標(biāo)簽,以展示具體的銷售數(shù)量,具體代碼如下:

for rect in rects1:
    height = rect.get_height()
    ax.annotate(f'{height}', xy=(rect.get_x() + rect.get_width() / 2, height), xytext=(0, 3),
                textcoords='offset points', ha='center', va='bottom')

for rect1, rect2 in zip(rects1, rects2):
    height1 = rect1.get_height()
    height2 = rect2.get_height()
    total_height = height1 + height2
    ax.annotate(f'{height2}', xy=(rect2.get_x() + rect2.get_width() / 2, total_height), xytext=(0, 3),
                textcoords='offset points', ha='center', va='bottom')

顯示圖形

最后,使用 plt.show() 函數(shù)顯示繪制好的堆疊柱狀圖,代碼如下:

plt.show()

通過以上步驟,我們成功繪制出了堆疊柱狀圖,展示了不同店鋪的銷售數(shù)量情況。

圖表效果圖展示

完整代碼

import pandas as pd
import matplotlib.pyplot as plt

plt.rcParams['font.family'] = ['SimHei']  # 指定中文字體為黑體
# 讀取Excel文件
df = pd.read_excel(r'C:\Users\liuchunlin2\Desktop\新建文件夾\新建 XLSX 工作表.xlsx', sheet_name='Sheet3')
# 設(shè)置柱狀圖的寬度
bar_width = 0.35
# 設(shè)置x軸的位置
x = df.index

# 繪制堆疊柱狀圖
fig, ax = plt.subplots()
rects1 = ax.bar(x, df['銷售數(shù)量'], bar_width, label='銷售數(shù)量')
rects2 = ax.bar(x, df['銷售數(shù)量2'], bar_width, bottom=df['銷售數(shù)量'], label='銷售數(shù)量2')

# 添加標(biāo)簽和標(biāo)題
ax.set_xlabel('店鋪名稱')
ax.set_ylabel('銷售數(shù)量')
ax.set_title('Stacked Bar Chart')
ax.set_xticks(x)
ax.set_xticklabels(df['店鋪名稱'])
ax.legend()

# 在每個(gè)柱子上方顯示數(shù)據(jù)標(biāo)簽
for rect in rects1:
    height = rect.get_height()
    ax.annotate(f'{height}', xy=(rect.get_x() + rect.get_width() / 2, height), xytext=(0, 3),
                textcoords='offset points', ha='center', va='bottom')

for rect1, rect2 in zip(rects1, rects2):
    height1 = rect1.get_height()
    height2 = rect2.get_height()
    total_height = height1 + height2
    ax.annotate(f'{height2}', xy=(rect2.get_x() + rect2.get_width() / 2, total_height), xytext=(0, 3),
                textcoords='offset points', ha='center', va='bottom')

# 顯示圖形
plt.show()

到此這篇關(guān)于Python利用pandas和matplotlib實(shí)現(xiàn)繪制堆疊柱狀圖的文章就介紹到這了,更多相關(guān)Python堆疊柱狀圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Django框架 信號(hào)調(diào)度原理解析

    Django框架 信號(hào)調(diào)度原理解析

    這篇文章主要介紹了Django框架 信號(hào)調(diào)度原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • wxpython實(shí)現(xiàn)圖書管理系統(tǒng)

    wxpython實(shí)現(xiàn)圖書管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了wxpython實(shí)現(xiàn)圖書管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Python實(shí)現(xiàn)讀取文件夾按數(shù)字排序功能

    Python實(shí)現(xiàn)讀取文件夾按數(shù)字排序功能

    這篇文章主要介紹了Python讀取文件夾按數(shù)字排序,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09
  • Python使用thread模塊實(shí)現(xiàn)多線程的操作

    Python使用thread模塊實(shí)現(xiàn)多線程的操作

    線程(Threads)是操作系統(tǒng)提供的一種輕量級(jí)的執(zhí)行單元,可以在一個(gè)進(jìn)程內(nèi)并發(fā)執(zhí)行多個(gè)任務(wù),每個(gè)線程都有自己的執(zhí)行上下文,包括棧、寄存器和程序計(jì)數(shù)器,本文給大家介紹了Python使用thread模塊實(shí)現(xiàn)多線程的操作,需要的朋友可以參考下
    2024-10-10
  • Python整型運(yùn)算之布爾型、標(biāo)準(zhǔn)整型、長(zhǎng)整型操作示例

    Python整型運(yùn)算之布爾型、標(biāo)準(zhǔn)整型、長(zhǎng)整型操作示例

    這篇文章主要介紹了Python整型運(yùn)算之布爾型、標(biāo)準(zhǔn)整型、長(zhǎng)整型操作,結(jié)合具體實(shí)例形式分析了Python中布爾型、標(biāo)準(zhǔn)整型、長(zhǎng)整型等相關(guān)運(yùn)算技巧,代碼備有詳盡注釋,需要的朋友可以參考下
    2017-07-07
  • python Jupyter運(yùn)行時(shí)間實(shí)例過程解析

    python Jupyter運(yùn)行時(shí)間實(shí)例過程解析

    這篇文章主要介紹了python Jupyter運(yùn)行時(shí)間實(shí)例過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Django Auth應(yīng)用實(shí)現(xiàn)用戶身份認(rèn)證

    Django Auth應(yīng)用實(shí)現(xiàn)用戶身份認(rèn)證

    Django Auth 應(yīng)用一般用在用戶的登錄注冊(cè)上,用于判斷當(dāng)前的用戶是否合法。本文將介紹Auth的另一個(gè)功能,即認(rèn)證用戶身份,感興趣的同學(xué)可以關(guān)注一下
    2021-12-12
  • python tarfile壓縮包操作保姆級(jí)教程

    python tarfile壓縮包操作保姆級(jí)教程

    TarFile類就是tar壓縮包,其由member塊組成, member塊則包括header塊和data塊. 每個(gè)member以TarInfo對(duì)象形式描述. 所以TarFile就是TarInfo的序列
    2023-02-02
  • Python制作基礎(chǔ)學(xué)生信息管理系統(tǒng)

    Python制作基礎(chǔ)學(xué)生信息管理系統(tǒng)

    本文詳細(xì)講解了Python制作基礎(chǔ)學(xué)生信息管理系統(tǒng)的實(shí)現(xiàn),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • Python Pytorch深度學(xué)習(xí)之?dāng)?shù)據(jù)加載和處理

    Python Pytorch深度學(xué)習(xí)之?dāng)?shù)據(jù)加載和處理

    今天小編就為大家分享一篇Pytorch 數(shù)據(jù)加載與數(shù)據(jù)預(yù)處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-10-10

最新評(píng)論