欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python 如何利用pandas 和 matplotlib繪制柱狀圖

 更新時(shí)間:2023年10月30日 09:17:16   作者:懸崖上的金魚(yú)  
Python 中的 pandas 和 matplotlib 庫(kù)提供了豐富的功能,可以幫助你輕松地繪制各種類(lèi)型的圖表,本文將介紹如何使用這兩個(gè)庫(kù),繪制一個(gè)店鋪銷(xiāo)售數(shù)量的柱狀圖,并添加各種元素,如數(shù)據(jù)標(biāo)簽、圖例、網(wǎng)格線(xiàn)等,感興趣的朋友一起看看吧

當(dāng)你需要展示數(shù)據(jù)時(shí),圖表是一個(gè)非常有用的工具。Python 中的 pandas 和 matplotlib 庫(kù)提供了豐富的功能,可以幫助你輕松地繪制各種類(lèi)型的圖表。本文將介紹如何使用這兩個(gè)庫(kù),繪制一個(gè)店鋪銷(xiāo)售數(shù)量的柱狀圖,并添加各種元素,如數(shù)據(jù)標(biāo)簽、圖例、網(wǎng)格線(xiàn)等。

準(zhǔn)備工作

在開(kāi)始之前,你需要安裝 pandas 和 matplotlib 庫(kù)。如果你還沒(méi)有安裝,可以使用以下命令進(jìn)行安裝

pip install pandas matplotlib

另外,為了在圖表中顯示中文,你需要下載并安裝中文字體文件。這里我們使用宋體,你可以替換為其他中文字體。下載后,將字體文件路徑替換到代碼中的 font 變量中

# 設(shè)置中文字體
font = FontProperties(fname='C:\\Windows\\Fonts\\simhei.ttf', size=12)  # 替換為你的中文字體文件路徑和字體大小

數(shù)據(jù)準(zhǔn)備

我們假設(shè)有一個(gè) Excel 文件,其中包含多個(gè)店鋪的銷(xiāo)售數(shù)據(jù)。每個(gè)店鋪有多個(gè)訂單,每個(gè)訂單有一個(gè)銷(xiāo)售數(shù)量。我們需要對(duì)每個(gè)店鋪的銷(xiāo)售數(shù)量進(jìn)行求和,并按照銷(xiāo)售數(shù)量降序排列。以下是數(shù)據(jù)準(zhǔn)備的代碼:

import pandas as pd
# 從Excel文件中讀取數(shù)據(jù)
data = pd.read_excel('C:\\Users\Admin\\Desktop\\數(shù)據(jù)核對(duì)\\新建 XLSX 工作表.xlsx')
# 聚合數(shù)據(jù)
aggregated_data = data.groupby('店鋪名稱(chēng)')['銷(xiāo)售數(shù)量'].sum()
# 按銷(xiāo)售數(shù)量降序排列
aggregated_data = aggregated_data.sort_values(ascending=False)
print(aggregated_data)

首先,我們使用 pandas 庫(kù)的 read_excel 函數(shù)讀取 Excel 文件中的數(shù)據(jù)。然后,使用 groupby 函數(shù)對(duì)數(shù)據(jù)進(jìn)行聚合,按照店鋪名稱(chēng)分組,并對(duì)每個(gè)組中的銷(xiāo)售數(shù)量求和。最后,使用 sort_values 函數(shù)按照銷(xiāo)售數(shù)量降序排列。

繪制柱狀圖

接下來(lái),我們使用 matplotlib 庫(kù)繪制柱狀圖。以下是繪制柱狀圖的代碼:

import matplotlib.pyplot as plt
# 繪制柱狀圖
aggregated_data.plot(kind='bar', color='steelblue', edgecolor='black', width=0.8)
# 設(shè)置圖表標(biāo)題和坐標(biāo)軸標(biāo)簽
plt.title('店鋪銷(xiāo)售數(shù)量')
plt.xlabel('店鋪名稱(chēng)')
plt.ylabel('銷(xiāo)售數(shù)量')
# 顯示圖表
plt.show()

我們使用 plot 函數(shù)繪制柱狀圖,其中 kind 參數(shù)指定圖表類(lèi)型為柱狀圖,color 參數(shù)指定柱子的顏色,edgecolor 參數(shù)指定柱子邊框的顏色,width 參數(shù)指定柱子的寬度。然后,使用 title、xlabel 和 ylabel 函數(shù)設(shè)置圖表標(biāo)題和坐標(biāo)軸標(biāo)簽。最后,使用 show 函數(shù)顯示圖表。

添加數(shù)據(jù)標(biāo)簽

為了更清楚地展示每個(gè)店鋪的銷(xiāo)售數(shù)量,我們可以在柱子上添加數(shù)據(jù)標(biāo)簽。以下是添加數(shù)據(jù)標(biāo)簽的代碼:

# 添加數(shù)據(jù)標(biāo)簽
for i, v in enumerate(aggregated_data):
    plt.text(i, v, str(v), ha='center', va='bottom')

# 顯示圖表
plt.show()

我們使用 text 函數(shù)添加數(shù)據(jù)標(biāo)簽,其中 i 和 v 分別表示柱子的索引和高度,ha 參數(shù)指定水平對(duì)齊方式為居中,va 參數(shù)指定垂直對(duì)齊方式為底部。最后,再次使用 show 函數(shù)顯示圖表。

設(shè)置刻度標(biāo)簽

由于店鋪名稱(chēng)較長(zhǎng),如果全部顯示會(huì)導(dǎo)致刻度標(biāo)簽重疊,影響美觀(guān)和可讀性。因此,我們可以旋轉(zhuǎn)刻度標(biāo)簽,并設(shè)置字體大小和字體樣式。以下是設(shè)置刻度標(biāo)簽的代碼:

# 設(shè)置刻度標(biāo)簽的字體大小和旋轉(zhuǎn)角度
plt.xticks(rotation=45, fontsize=10)

# 顯示圖表
plt.show()

我們使用 xticks 函數(shù)設(shè)置刻度標(biāo)簽,其中 rotation 參數(shù)指定旋轉(zhuǎn)角度為45度,fontsize 參數(shù)指定字體大小為10。

添加圖例

我們可以添加圖例,以便更好地解釋圖表中的信息。以下是添加圖例的代碼:

# 設(shè)置圖例
plt.legend(['銷(xiāo)售數(shù)量'], loc='upper right')

# 顯示圖表
plt.show()

我們使用 legend 函數(shù)添加圖例,其中 loc 參數(shù)指定圖例位置為右上角,['銷(xiāo)售數(shù)量'] 表示圖例中的文本。

去除邊框和添加網(wǎng)格線(xiàn)

為了讓圖表更加簡(jiǎn)潔和美觀(guān),我們可以去除上邊框和右邊框,并添加水平虛線(xiàn)網(wǎng)格線(xiàn)。以下是去除邊框和添加網(wǎng)格線(xiàn)的代碼

# 去除上邊框和右邊框
plt.gca().spines['top'].set_visible(False)
plt.gca().spines['right'].set_visible(False)
# 添加網(wǎng)格線(xiàn)
plt.grid(axis='y', linestyle='--', alpha=0.5)
# 顯示圖表
plt.show()

我們使用 gca 函數(shù)獲取當(dāng)前軸對(duì)象,然后使用 spines 屬性去除上邊框和右邊框。使用 grid 函數(shù)添加水平虛線(xiàn)網(wǎng)格線(xiàn),其中 axis 參數(shù)指定網(wǎng)格線(xiàn)方向?yàn)榇怪狈较颍?code>linestyle 參數(shù)指定網(wǎng)格線(xiàn)樣式為虛線(xiàn),alpha 參數(shù)指定網(wǎng)格線(xiàn)透明度為0.5。

設(shè)置背景色和調(diào)整布局

最后,我們可以設(shè)置圖表的背景色,并調(diào)整圖表布局使得圖表內(nèi)容更加緊湊。以下是設(shè)置背景色和調(diào)整布局的代碼:

# 設(shè)置背景色
plt.gca().set_facecolor('#F5F5F5')
# 調(diào)整圖表布局
plt.tight_layout()
# 顯示圖表
plt.show()

我們使用 set_facecolor 函數(shù)設(shè)置背景色為淺灰色,使用 tight_layout 函數(shù)調(diào)整圖表布局。

完整代碼

將上面的代碼整合起來(lái),得到完整的代碼如下:

import pandas as pd
import matplotlib.pyplot as plt
# 從Excel文件中讀取數(shù)據(jù)
data = pd.read_excel('C:\\Users\Admin\\Desktop\\數(shù)據(jù)核對(duì)\\新建 XLSX 工作表.xlsx')
# 聚合數(shù)據(jù)
aggregated_data = data.groupby('店鋪名稱(chēng)')['銷(xiāo)售數(shù)量'].sum()
# 按銷(xiāo)售數(shù)量降序排列
aggregated_data = aggregated_data.sort_values(ascending=False)
# 繪制柱狀圖
aggregated_data.plot(kind='bar', color='steelblue', edgecolor='black', width=0.8)
# 添加數(shù)據(jù)標(biāo)簽
for i, v in enumerate(aggregated_data):
    plt.text(i, v, str(v), ha='center', va='bottom')
# 設(shè)置圖表標(biāo)題和坐標(biāo)軸標(biāo)簽
plt.title('店鋪銷(xiāo)售數(shù)量')
plt.xlabel('店鋪名稱(chēng)')
plt.ylabel('銷(xiāo)售數(shù)量')
# 設(shè)置刻度標(biāo)簽的字體大小和旋轉(zhuǎn)角度
plt.xticks(rotation=45, fontsize=10)
# 設(shè)置圖例
plt.legend(['銷(xiāo)售數(shù)量'], loc='upper right')
# 去除上邊框和右邊框
plt.gca().spines['top'].set_visible(False)
plt.gca().spines['right'].set_visible(False)
# 添加網(wǎng)格線(xiàn)
plt.grid(axis='y', linestyle='--', alpha=0.5)
# 設(shè)置背景色
plt.gca().set_facecolor('#F5F5F5')
# 調(diào)整圖表布局
plt.tight_layout()
# 顯示圖表
plt.show()

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

相關(guān)文章

  • Python中將dataframe轉(zhuǎn)換為字典的實(shí)例

    Python中將dataframe轉(zhuǎn)換為字典的實(shí)例

    下面小編就為大家分享一篇Python中將dataframe轉(zhuǎn)換為字典的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • 解決python中使用plot畫(huà)圖,圖不顯示的問(wèn)題

    解決python中使用plot畫(huà)圖,圖不顯示的問(wèn)題

    今天小編就為大家分享一篇解決python中使用plot畫(huà)圖,圖不顯示的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • python golang中g(shù)rpc 使用示例代碼詳解

    python golang中g(shù)rpc 使用示例代碼詳解

    這篇文章主要介紹了python golang中g(shù)rpc 使用,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python 圖形繪制詳細(xì)代碼(二)

    Python 圖形繪制詳細(xì)代碼(二)

    這篇文章主要介紹了Python 圖形繪制詳細(xì)代碼,本文接著上文介紹介紹條形圖的畫(huà)法,同樣附有詳細(xì)的代碼,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2021-12-12
  • numpy和tensorflow中的各種乘法(點(diǎn)乘和矩陣乘)

    numpy和tensorflow中的各種乘法(點(diǎn)乘和矩陣乘)

    這篇文章主要介紹了numpy和tensorflow中的各種乘法(點(diǎn)乘和矩陣乘),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • django通過(guò)ajax發(fā)起請(qǐng)求返回JSON格式數(shù)據(jù)的方法

    django通過(guò)ajax發(fā)起請(qǐng)求返回JSON格式數(shù)據(jù)的方法

    這篇文章主要介紹了django通過(guò)ajax發(fā)起請(qǐng)求返回JSON格式數(shù)據(jù)的方法,較為詳細(xì)的分析了django處理ajax請(qǐng)求的技巧,需要的朋友可以參考下
    2015-06-06
  • Python操作Git的項(xiàng)目實(shí)踐

    Python操作Git的項(xiàng)目實(shí)踐

    本文介紹了使用Python和GitPython庫(kù)進(jìn)行各種Git操作,包括打開(kāi)倉(cāng)庫(kù)、查詢(xún)狀態(tài)、添加和提交更改等,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-12-12
  • python執(zhí)行系統(tǒng)命令4種方法與比較

    python執(zhí)行系統(tǒng)命令4種方法與比較

    這篇文章主要介紹了python執(zhí)行系統(tǒng)命令4種方法與比較,需要的朋友可以參考下
    2021-04-04
  • Python3字符串encode與decode的講解

    Python3字符串encode與decode的講解

    今天小編就為大家分享一篇關(guān)于Python3字符串encode與decode的講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-04-04
  • pytorch forward兩個(gè)參數(shù)實(shí)例

    pytorch forward兩個(gè)參數(shù)實(shí)例

    今天小編就為大家分享一篇pytorch forward兩個(gè)參數(shù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01

最新評(píng)論