我正在嘗試使用matplotlib
創建水平堆疊條形圖,但我看不到如何使條形實際堆疊而不是全部在y軸上開始。Matplotlib中的水平堆積條形圖
這是我的測試代碼。
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
plot_chart(df, fig, ax)
ind = arange(df.shape[0])
ax.barh(ind, df['EndUse_91_1.0'], color='#FFFF00')
ax.barh(ind, df['EndUse_91_nan'], color='#FFFF00')
ax.barh(ind, df['EndUse_80_1.0'], color='#0070C0')
ax.barh(ind, df['EndUse_80_nan'], color='#0070C0')
plt.show()
編輯使用left
kwarg看到tcaswell的評論後。
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
plot_chart(df, fig, ax)
ind = arange(df.shape[0])
ax.barh(ind, df['EndUse_91_1.0'], color='#FFFF00')
lefts = df['EndUse_91_1.0']
ax.barh(ind, df['EndUse_91_nan'], color='#FFFF00', left=lefts)
lefts = lefts + df['EndUse_91_1.0']
ax.barh(ind, df['EndUse_80_1.0'], color='#0070C0', left=lefts)
lefts = lefts + df['EndUse_91_1.0']
ax.barh(ind, df['EndUse_80_nan'], color='#0070C0', left=lefts)
plt.show()
這似乎是正確的做法,但如果是因爲它試圖添加nan
的值,然後返回nan
特定欄中沒有數據失敗。
你需要使用'bottom' kwarg – tacaswell
這就給我'TypeError:barh()爲關鍵字參數'bottom''獲得了多個值。好像我需要使用'left'。感謝您讓我走上正軌。 –
啊,對不起。 – tacaswell