Python利用pandas和matplotlib實現(xiàn)繪制柱狀折線圖
在數(shù)據(jù)分析和展示中,經(jīng)常需要將數(shù)據(jù)可視化呈現(xiàn),以便更直觀地理解數(shù)據(jù)背后的趨勢和關(guān)聯(lián)關(guān)系。本篇文章將介紹如何使用 Python 中的 Pandas 和 Matplotlib 庫創(chuàng)建一個柱狀圖與折線圖結(jié)合的數(shù)據(jù)可視化圖表。
準備工作
首先,我們需要導(dǎo)入必要的庫,并讀取我們的數(shù)據(jù)源,這里使用了 Pandas 庫來讀取 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ù)處理與準備
在這一部分,我們會對數(shù)據(jù)進行處理,并準備好需要用到的數(shù)據(jù)。具體操作包括設(shè)置 x 軸的位置和準備子圖等。
# 設(shè)置x軸的位置 x = df.index # 創(chuàng)建畫布和子圖 fig, ax1 = plt.subplots()
繪制柱狀圖和折線圖
接下來,我們將繪制柱狀圖和折線圖,并添加相應(yīng)的數(shù)據(jù)標簽和圖例。
# 繪制柱狀圖 ax1.bar(x, df['銷售數(shù)量'], label='銷售數(shù)量', color='skyblue', width=0.4) # 添加數(shù)據(jù)標簽 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ù)標簽 for i, v in enumerate(df['銷售數(shù)量2']): ax1.text(i, v + 3, str(v), ha='center', va='bottom', color='g', fontsize=8)
圖表美化和展示
最后,我們對圖表進行美化,包括添加標簽、標題、圖例以及設(shè)置坐標軸刻度標簽字體大小等,并展示最終的圖形。
# 添加標簽和標題 ax1.set_xlabel('店鋪名稱', fontsize=10) ax1.set_ylabel('銷售數(shù)量/銷售數(shù)量2', fontsize=10) ax1.set_title('銷售數(shù)量與銷售數(shù)量2對比', fontsize=12) ax1.set_xticks(x) ax1.set_xticklabels(df['店鋪名稱'], rotation=0, ha='right') ax1.legend(['銷售數(shù)量', '銷售數(shù)量2'], loc='upper left') # 設(shè)置坐標軸刻度標簽字體大小 ax1.tick_params(axis='both', which='major', labelsize=8) # 增加網(wǎng)格線 ax1.grid(axis='y', linestyle='--', alpha=0.7) # 顯示圖形 plt.show()
通過以上步驟,我們成功創(chuàng)建了一個柱狀圖與折線圖結(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ù)標簽 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ù)標簽 for i, v in enumerate(df['銷售數(shù)量2']): ax1.text(i, v + 3, str(v), ha='center', va='bottom', color='g', fontsize=8) # 添加標簽和標題 ax1.set_xlabel('店鋪名稱', fontsize=10) ax1.set_ylabel('銷售數(shù)量/銷售數(shù)量2', fontsize=10) ax1.set_title('銷售數(shù)量與銷售數(shù)量2對比', fontsize=12) ax1.set_xticks(x) ax1.set_xticklabels(df['店鋪名稱'], rotation=0, ha='right') ax1.legend(['銷售數(shù)量', '銷售數(shù)量2'], loc='upper left') # 設(shè)置坐標軸刻度標簽字體大小 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實現(xiàn)繪制柱狀折線圖的文章就介紹到這了,更多相關(guān)Python柱狀折線圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
django admin后臺添加導(dǎo)出excel功能示例代碼
這篇文章主要介紹了django admin 后臺添加導(dǎo)出excel功能示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05Python中列表、字典、元組數(shù)據(jù)結(jié)構(gòu)的簡單學習筆記
這篇文章主要介紹了Python中列表、字典、元組數(shù)據(jù)結(jié)構(gòu)的簡單學習筆記,文中講到了字典在Python3中特性和操作方法的一些變化,需要的朋友可以參考下2016-03-03python使用paramiko模塊實現(xiàn)ssh遠程登陸上傳文件并執(zhí)行
使用paramiko,ssh遠程登陸,長傳文件并執(zhí)行。其中用到了多線程和隊列,paramiko是用python語言寫的一個模塊,遵循SSH2協(xié)議,支持以加密和認證的方式,進行遠程服務(wù)器的連接。2014-01-01