Python利用pandas和matplotlib實(shí)現(xiàn)繪制雙柱狀圖
在數(shù)據(jù)分析和可視化中,常用的一種圖形類型是柱狀圖。柱狀圖能夠清晰地展示不同分類變量的數(shù)值,并支持多組數(shù)據(jù)進(jìn)行對(duì)比。本篇文章將介紹如何使用Python繪制雙柱狀圖。
準(zhǔn)備工作
在開始繪制柱狀圖之前,需要先安裝matplotlib和pandas這兩個(gè)Python庫??梢酝ㄟ^pip安裝:
pip install matplotlib pip install pandas
導(dǎo)入所需庫
import pandas as pd import matplotlib.pyplot as plt
讀取并處理數(shù)據(jù)
# 讀取Excel文件 df = pd.read_excel(r'C:\Users\Admin\Desktop\數(shù)據(jù)核對(duì)\新建 XLSX 工作表.xlsx', sheet_name='Sheet3') # 設(shè)置柱狀圖的寬度 bar_width = 0.35 # 設(shè)置x軸的位置 x = df.index
首先使用Pandas讀取Excel文件,然后根據(jù)實(shí)際情況設(shè)置柱狀圖的寬度和x軸位置。這里我們使用DataFrame的索引作為x軸。
繪制柱狀圖
# 繪制柱狀圖 fig, ax = plt.subplots() rects1 = ax.bar(x - bar_width/2, df['銷售數(shù)量'], bar_width, label='銷售數(shù)量') rects2 = ax.bar(x + bar_width/2, df['銷售數(shù)量2'], bar_width, label='銷售數(shù)量2')
使用matplotlib繪制柱狀圖,其中subplots()方法會(huì)返回一個(gè)Figure對(duì)象和一個(gè)Axes對(duì)象。然后使用bar()方法繪制兩組柱狀圖,并設(shè)置標(biāo)簽。
添加標(biāo)簽和標(biāo)題
# 添加標(biāo)簽和標(biāo)題
ax.set_xlabel('店鋪名稱')
ax.set_ylabel('銷售數(shù)量')
ax.set_title('Double Bar Chart')
ax.set_xticks(x)
ax.set_xticklabels(df['店鋪名稱'])
ax.legend()添加數(shù)據(jù)標(biāo)簽
# 添加數(shù)據(jù)標(biāo)簽
for rect in rects1:
height = rect.get_height()
ax.annotate('{}'.format(height),
xy=(rect.get_x() + rect.get_width() / 2, height),
xytext=(0, 3), # 3 points vertical offset
textcoords="offset points",
ha='center', va='bottom')
for rect in rects2:
height = rect.get_height()
ax.annotate('{}'.format(height),
xy=(rect.get_x() + rect.get_width() / 2, height/2),
xytext=(0, 3), # 3 points vertical offset
textcoords="offset points",
ha='center', va='top')對(duì)于每個(gè)柱狀圖,使用annotate()方法添加數(shù)據(jù)標(biāo)簽。
顯示圖形
# 顯示圖形 plt.show()
最后使用show()方法顯示圖形。
效果圖展示

完整代碼
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = ['SimHei'] # 指定中文字體為黑體
# 讀取Excel文件
df = pd.read_excel(r'C:\Users\Admin\Desktop\數(shù)據(jù)核對(duì)\新建 XLSX 工作表.xlsx', sheet_name='Sheet3')
# 設(shè)置柱狀圖的寬度
bar_width = 0.35
# 設(shè)置x軸的位置
x = df.index
# 繪制柱狀圖
fig, ax = plt.subplots()
rects1 = ax.bar(x - bar_width/2, df['銷售數(shù)量'], bar_width, label='銷售數(shù)量')
rects2 = ax.bar(x + bar_width/2, df['銷售數(shù)量2'], bar_width, label='銷售數(shù)量2')
# 添加標(biāo)簽和標(biāo)題
ax.set_xlabel('店鋪名稱')
ax.set_ylabel('銷售數(shù)量')
ax.set_title('Double Bar Chart')
ax.set_xticks(x)
ax.set_xticklabels(df['店鋪名稱'])
ax.legend()
# 添加數(shù)據(jù)標(biāo)簽
for rect in rects1:
height = rect.get_height()
ax.annotate('{}'.format(height),
xy=(rect.get_x() + rect.get_width() / 2, height),
xytext=(0, 3), # 3 points vertical offset
textcoords="offset points",
ha='center', va='bottom')
for rect in rects2:
height = rect.get_height()
ax.annotate('{}'.format(height),
xy=(rect.get_x() + rect.get_width() / 2, height/2),
xytext=(0, 3), # 3 points vertical offset
textcoords="offset points",
ha='center', va='top')
# 顯示圖形
plt.show()到此這篇關(guān)于Python利用pandas和matplotlib實(shí)現(xiàn)繪制雙柱狀圖的文章就介紹到這了,更多相關(guān)Python雙柱狀圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于matplotlib-legend 位置屬性 loc 使用說明
這篇文章主要介紹了關(guān)于matplotlib-legend 位置屬性 loc 使用說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05
python3實(shí)現(xiàn)將json對(duì)象存入Redis以及數(shù)據(jù)的導(dǎo)入導(dǎo)出
這篇文章主要介紹了python3實(shí)現(xiàn)將json對(duì)象存入Redis以及數(shù)據(jù)的導(dǎo)入導(dǎo)出,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07
Python實(shí)現(xiàn)鏈表反轉(zhuǎn)的方法分析【迭代法與遞歸法】
這篇文章主要介紹了Python實(shí)現(xiàn)鏈表反轉(zhuǎn)的方法,結(jié)合實(shí)例形式分析了Python迭代法與遞歸法實(shí)現(xiàn)鏈表反轉(zhuǎn)的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2020-02-02
python控制windows剪貼板,向剪貼板中寫入圖片的實(shí)例
今天小編就為大家分享一篇python控制windows剪貼板,向剪貼板中寫入圖片的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05
Python在后臺(tái)自動(dòng)解壓各種壓縮文件的實(shí)現(xiàn)方法
這篇文章主要介紹了Python在后臺(tái)自動(dòng)解壓各種壓縮文件的實(shí)現(xiàn)方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
Python ValueError: invalid literal for int() with base 10 實(shí)用
這篇文章主要介紹了Python ValueError: invalid literal for int() with base 10 實(shí)用解決方法,本文使用了一個(gè)取巧方法解決了這個(gè)問題,需要的朋友可以參考下2015-06-06
在Python下使用Txt2Html實(shí)現(xiàn)網(wǎng)頁過濾代理的教程
這篇文章主要介紹了在Python下使用Txt2Html實(shí)現(xiàn)網(wǎng)頁過濾代理的教程,來自IBM官方開發(fā)者技術(shù)文檔,需要的朋友可以參考下2015-04-04

