簡體   English   中英

如何調整條形圖的圖形間距。 Matplotlib

[英]How can I adjust the graph spacing of a bar chart. Matplotlib

我有一個條形圖。 有 3 列,但每年之間的間距太寬。 是 add_axes 問題嗎? 因為我是 matlibplot 的新手。 有誰知道我該如何改變它?

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib import style
style.use('ggplot')

dict_ = {'date': [pd.Timestamp('20150720'),pd.Timestamp('20160720'),pd.Timestamp('20170720'),pd.Timestamp('20180720'),pd.Timestamp('20190720'),pd.Timestamp('20200720')],
            'BKNG': [15.22, 6.36, 5.05, 5, 9.3641, -3],
            'MCD' : [25.22, 11.36, 7.05, 9, 8.3641, -6],
            'YUM' : [52.22, 21.36, 25.05, 26, 21.3641, -10]
    
}

df = pd.DataFrame(dict_)
df['date'] = df['date'].dt.year
df.set_index('date',inplace=True)

fig = plt.figure(figsize=(10,8))
ax = fig.add_axes([0,0,1,1])

ax.bar(df.index+0.00, df['BKNG'], color = 'b', width = 0.10, label='BKNG')
ax.bar(df.index+0.20, df['MCD'], color = 'g', width = 0.10, label='MCD')
ax.bar(df.index+0.30, df['YUM'], color = 'r', width = 0.10, label='YUM')

plt.title('ROE')
plt.xlabel('date')
plt.ylabel('value')

plt.legend()
plt.show()

輸出

width 參數改變條的寬度:

所以如果你想排列它們,你必須添加具有列寬的索引:

ax.bar(df.index+0.00, df['BKNG'], color = 'b', width = 0.2, label='BKNG')
ax.bar(df.index+0.20, df['MCD'], color = 'g', width = 0.2, label='MCD')
ax.bar(df.index+0.40, df['YUM'], color = 'r', width = 0.2, label='YUM')

或者,如果您希望寬度為 0.25,請將中間欄更改為 +0.25

ax.bar(df.index+0.00, df['BKNG'], color = 'b', width = 0.25, label='BKNG')
ax.bar(df.index+0.25, df['MCD'], color = 'g', width = 0.25, label='MCD')
ax.bar(df.index+0.50, df['YUM'], color = 'r', width = 0.25, label='YUM')

為了更好的組織,您可以將代碼更改為:

i=0
width = 0.25
gap = .02
cols = ['BKNG','MCD','YUM']
colors= ['b','g','r']
for col in cols:
    ax.bar(df.index+(i*(width+gap)), df[col], color = colors[i], width = width, label=col)
    i+=1

Pandas 繪圖讓生活更輕松:

df.plot.bar(width=0.5)

您可以調整width以指定組之間的間距。 1處,沒有間距。 0.5時,間距等於組的寬度,即占總空間的一半。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM