Tôi đang cố gắng tạo biểu đồ thanh xếp chồng ngang bằng cách sử dụng matplotlib
nhưng tôi không thể thấy cách làm cho các thanh thực sự ngăn xếp thay vì tất cả bắt đầu trên trục y.Biểu đồ thanh xếp chồng đứng ngang trong Matplotlib
Đây là mã thử nghiệm của tôi.
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()
Đã chỉnh sửa để sử dụng left
kwarg sau khi xem nhận xét của 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()
Điều này dường như là cách tiếp cận đúng, nhưng nó không thành công nếu không có dữ liệu cho một thanh đặc biệt như nó đang cố gắng để thêm nan
đến một giá trị mà sau đó trả về nan
.
bạn cần sử dụng 'bottom' kwarg – tacaswell
Điều đó cho tôi' TypeError: barh() có nhiều giá trị cho đối số từ khóa 'bottom''. Có vẻ như tôi cần sử dụng 'left'. Cảm ơn đã cho tôi đi đúng hướng. –
ah, xin lỗi về điều đó. – tacaswell