Python利用pandas和matplotlib實(shí)現(xiàn)繪制柱狀折線圖
在數(shù)據(jù)分析和展示中,經(jīng)常需要將數(shù)據(jù)可視化呈現(xiàn),以便更直觀地理解數(shù)據(jù)背后的趨勢(shì)和關(guān)聯(lián)關(guān)系。本篇文章將介紹如何使用 Python 中的 Pandas 和 Matplotlib 庫(kù)創(chuàng)建一個(gè)柱狀圖與折線圖結(jié)合的數(shù)據(jù)可視化圖表。
準(zhǔn)備工作
首先,我們需要導(dǎo)入必要的庫(kù),并讀取我們的數(shù)據(jù)源,這里使用了 Pandas 庫(kù)來讀取 Excel 文件,Matplotlib 則用于繪制圖表。
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = ['SimHei'] # 指定中文字體為黑體
# 讀取Excel文件
df = pd.read_excel('新建 XLSX 工作表.xlsx', sheet_name='Sheet3')數(shù)據(jù)處理與準(zhǔn)備
在這一部分,我們會(huì)對(duì)數(shù)據(jù)進(jìn)行處理,并準(zhǔn)備好需要用到的數(shù)據(jù)。具體操作包括設(shè)置 x 軸的位置和準(zhǔn)備子圖等。
# 設(shè)置x軸的位置 x = df.index # 創(chuàng)建畫布和子圖 fig, ax1 = plt.subplots()
繪制柱狀圖和折線圖
接下來,我們將繪制柱狀圖和折線圖,并添加相應(yīng)的數(shù)據(jù)標(biāo)簽和圖例。
# 繪制柱狀圖
ax1.bar(x, df['銷售數(shù)量'], label='銷售數(shù)量', color='skyblue', width=0.4)
# 添加數(shù)據(jù)標(biāo)簽
for i, v in enumerate(df['銷售數(shù)量']):
ax1.text(i, v + 3, str(v), ha='center', va='bottom', fontsize=8)
# 繪制折線圖
ax1.plot(x, df['銷售數(shù)量2'], color='lightgreen', marker='o', linestyle='-', linewidth=2)
# 添加折線圖數(shù)據(jù)標(biāo)簽
for i, v in enumerate(df['銷售數(shù)量2']):
ax1.text(i, v + 3, str(v), ha='center', va='bottom', color='g', fontsize=8)圖表美化和展示
最后,我們對(duì)圖表進(jìn)行美化,包括添加標(biāo)簽、標(biāo)題、圖例以及設(shè)置坐標(biāo)軸刻度標(biāo)簽字體大小等,并展示最終的圖形。
# 添加標(biāo)簽和標(biāo)題
ax1.set_xlabel('店鋪名稱', fontsize=10)
ax1.set_ylabel('銷售數(shù)量/銷售數(shù)量2', fontsize=10)
ax1.set_title('銷售數(shù)量與銷售數(shù)量2對(duì)比', fontsize=12)
ax1.set_xticks(x)
ax1.set_xticklabels(df['店鋪名稱'], rotation=0, ha='right')
ax1.legend(['銷售數(shù)量', '銷售數(shù)量2'], loc='upper left')
# 設(shè)置坐標(biāo)軸刻度標(biāo)簽字體大小
ax1.tick_params(axis='both', which='major', labelsize=8)
# 增加網(wǎng)格線
ax1.grid(axis='y', linestyle='--', alpha=0.7)
# 顯示圖形
plt.show()通過以上步驟,我們成功創(chuàng)建了一個(gè)柱狀圖與折線圖結(jié)合的數(shù)據(jù)可視化圖表。
圖表效果圖展示

完整代碼
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è)置x軸的位置
x = df.index
# 創(chuàng)建畫布和子圖
fig, ax1 = plt.subplots()
# 繪制柱狀圖
ax1.bar(x, df['銷售數(shù)量'], label='銷售數(shù)量', color='skyblue', width=0.4)
# 添加數(shù)據(jù)標(biāo)簽
for i, v in enumerate(df['銷售數(shù)量']):
ax1.text(i, v + 3, str(v), ha='center', va='bottom', fontsize=8)
# 繪制折線圖
ax1.plot(x, df['銷售數(shù)量2'], color='lightgreen', marker='o', linestyle='-', linewidth=2)
# 添加折線圖數(shù)據(jù)標(biāo)簽
for i, v in enumerate(df['銷售數(shù)量2']):
ax1.text(i, v + 3, str(v), ha='center', va='bottom', color='g', fontsize=8)
# 添加標(biāo)簽和標(biāo)題
ax1.set_xlabel('店鋪名稱', fontsize=10)
ax1.set_ylabel('銷售數(shù)量/銷售數(shù)量2', fontsize=10)
ax1.set_title('銷售數(shù)量與銷售數(shù)量2對(duì)比', fontsize=12)
ax1.set_xticks(x)
ax1.set_xticklabels(df['店鋪名稱'], rotation=0, ha='right')
ax1.legend(['銷售數(shù)量', '銷售數(shù)量2'], loc='upper left')
# 設(shè)置坐標(biāo)軸刻度標(biāo)簽字體大小
ax1.tick_params(axis='both', which='major', labelsize=8)
# 增加網(wǎng)格線
ax1.grid(axis='y', linestyle='--', alpha=0.7)
# 顯示圖形
plt.show()到此這篇關(guān)于Python利用pandas和matplotlib實(shí)現(xiàn)繪制柱狀折線圖的文章就介紹到這了,更多相關(guān)Python柱狀折線圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Python和C++實(shí)現(xiàn)刪除鏈表的節(jié)點(diǎn)
這篇文章主要介紹了基于Python和C++實(shí)現(xiàn)刪除鏈表的節(jié)點(diǎn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
Python打包踩坑指南之徹底解決Nuitka --onefile配置文件丟失與重啟報(bào)錯(cuò)問題
這篇文章主要為大家詳細(xì)介紹了Python使用Nuitka打包項(xiàng)目出現(xiàn)Nuitka --onefile配置文件丟失與重啟報(bào)錯(cuò)問題的解決,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2026-03-03
Python實(shí)現(xiàn)查找數(shù)據(jù)庫(kù)最接近的數(shù)據(jù)
這篇文章主要介紹了Python實(shí)現(xiàn)查找數(shù)據(jù)庫(kù)最接近的數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
python程序文件擴(kuò)展名知識(shí)點(diǎn)詳解
在本篇文章里小編給大家整理的是關(guān)于python程序文件擴(kuò)展名知識(shí)點(diǎn)詳解內(nèi)容,需要的朋友們學(xué)習(xí)參考下。2020-02-02
Python自動(dòng)化神器Playwright的用法詳解
python Playwright 是一個(gè) Python 庫(kù),它提供了一個(gè)高級(jí) API,用于自動(dòng)化 Web 瀏覽器,它支持 chrome、firefox 和 webkit 瀏覽器,并提供了一種簡(jiǎn)單易用的方法來模擬用戶在瀏覽器中的行為,本文小編將詳細(xì)的給大家介紹一下Python自動(dòng)化神器Playwright的用法2025-04-04
Python2.x和3.x下maketrans與translate函數(shù)使用上的不同
這篇文章主要介紹了Python2.x和3.x下maketrans與translate函數(shù)使用上的不同,這兩個(gè)函數(shù)建立映射來替換內(nèi)容是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-04-04
Python使用unittest進(jìn)行有效測(cè)試的示例詳解
這篇文章主要介紹了如何使用?unittest?來編寫和運(yùn)行單元測(cè)試,希望通過閱讀本文,大家能了解?unittest?的基本使用方法,以及如何使用?unittest?中的斷言方法和測(cè)試用例組織結(jié)構(gòu)2023-06-06

