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

Python利用pandas和matplotlib實現(xiàn)繪制雙柱狀圖

 更新時間:2023年11月07日 08:50:43   作者:qwerrt9  
在數(shù)據(jù)分析和可視化中,常用的一種圖形類型是柱狀圖,柱狀圖能夠清晰地展示不同分類變量的數(shù)值,并支持多組數(shù)據(jù)進(jìn)行對比,本篇文章將介紹python如何使用pandas和matplotlib繪制雙柱狀圖,需要的可以參考下

在數(shù)據(jù)分析和可視化中,常用的一種圖形類型是柱狀圖。柱狀圖能夠清晰地展示不同分類變量的數(shù)值,并支持多組數(shù)據(jù)進(jìn)行對比。本篇文章將介紹如何使用Python繪制雙柱狀圖。

準(zhǔn)備工作

在開始繪制柱狀圖之前,需要先安裝matplotlib和pandas這兩個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ù)核對\新建 XLSX 工作表.xlsx', sheet_name='Sheet3')

# 設(shè)置柱狀圖的寬度
bar_width = 0.35

# 設(shè)置x軸的位置
x = df.index

首先使用Pandas讀取Excel文件,然后根據(jù)實際情況設(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()方法會返回一個Figure對象和一個Axes對象。然后使用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')

對于每個柱狀圖,使用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ù)核對\新建 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實現(xiàn)繪制雙柱狀圖的文章就介紹到這了,更多相關(guān)Python雙柱狀圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論