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

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

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

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

準備工作

在開始之前,你需要安裝 pandas 和 matplotlib 庫。如果你還沒有安裝,可以使用以下命令進行安裝

pip install pandas matplotlib

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

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

數(shù)據(jù)準備

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

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

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

繪制柱狀圖

接下來,我們使用 matplotlib 庫繪制柱狀圖。以下是繪制柱狀圖的代碼:

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

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

添加數(shù)據(jù)標簽

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

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

# 顯示圖表
plt.show()

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

設置刻度標簽

由于店鋪名稱較長,如果全部顯示會導致刻度標簽重疊,影響美觀和可讀性。因此,我們可以旋轉刻度標簽,并設置字體大小和字體樣式。以下是設置刻度標簽的代碼:

# 設置刻度標簽的字體大小和旋轉角度
plt.xticks(rotation=45, fontsize=10)

# 顯示圖表
plt.show()

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

添加圖例

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

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

# 顯示圖表
plt.show()

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

去除邊框和添加網格線

為了讓圖表更加簡潔和美觀,我們可以去除上邊框和右邊框,并添加水平虛線網格線。以下是去除邊框和添加網格線的代碼

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

我們使用 gca 函數(shù)獲取當前軸對象,然后使用 spines 屬性去除上邊框和右邊框。使用 grid 函數(shù)添加水平虛線網格線,其中 axis 參數(shù)指定網格線方向為垂直方向,linestyle 參數(shù)指定網格線樣式為虛線,alpha 參數(shù)指定網格線透明度為0.5。

設置背景色和調整布局

最后,我們可以設置圖表的背景色,并調整圖表布局使得圖表內容更加緊湊。以下是設置背景色和調整布局的代碼:

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

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

完整代碼

將上面的代碼整合起來,得到完整的代碼如下:

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

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

相關文章

  • Python中將dataframe轉換為字典的實例

    Python中將dataframe轉換為字典的實例

    下面小編就為大家分享一篇Python中將dataframe轉換為字典的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 解決python中使用plot畫圖,圖不顯示的問題

    解決python中使用plot畫圖,圖不顯示的問題

    今天小編就為大家分享一篇解決python中使用plot畫圖,圖不顯示的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • python golang中grpc 使用示例代碼詳解

    python golang中grpc 使用示例代碼詳解

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

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

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

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

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

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

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

    Python操作Git的項目實踐

    本文介紹了使用Python和GitPython庫進行各種Git操作,包括打開倉庫、查詢狀態(tài)、添加和提交更改等,具有一定的參考價值,感興趣的可以了解一下
    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的講解

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

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

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

最新評論