簡體   English   中英

plot 條形圖網格或包裝條形圖使用 python (matplotlib)

[英]plot grid of bar charts or wrap bar chart using python (matplotlib)

我想用python制作水平條形圖,但是這樣的分類太多了

import matplotlib.pyplot as plt
x = ['c0', 'c1', 'c2', 'c3', 'c4',
     'c5', 'c6', 'c7', 'c8', 'c9',
     'c10', 'c11', 'c12', 'c13', 'c14',
     'c15', 'c16', 'c17', 'c18', 'c19',
     'c20', 'c21', 'c22', 'c23', 'c24',
     'c25', 'c26', 'c27', 'c28', 'c29']
    
 y = [9556, 9318, 9308, 2556, 2424, 1812, 1624, 1468, 1398, 1344, 1200,
    1056, 888, 732, 732, 704, 684, 680, 666, 660, 636, 624,
    576, 552, 544, 532, 468, 448, 448, 436]
    
 plt.barh(new_x, new_y)

在此處輸入圖像描述 上面的代碼只是分類的一部分,其實我的分類有200多個,我想切分成兩個子圖來呈現, 像這樣

在此處輸入圖像描述

python中的上圖plot有什么辦法嗎?

使用索引拆分數據,並使用垂直子圖將數據拆分為 plot。 例如這樣的事情:

split = len(x) // 2
fig, (ax1, ax2) = plt.subplots(1, 2, sharex=True, sharey=False, figsize=(10, 8))


x = ['c0', 'c1', 'c2', 'c3', 'c4',
     'c5', 'c6', 'c7', 'c8', 'c9',
     'c10', 'c11', 'c12', 'c13', 'c14',
     'c15', 'c16', 'c17', 'c18', 'c19',
     'c20', 'c21', 'c22', 'c23', 'c24',
     'c25', 'c26', 'c27', 'c28', 'c29']
    
y = [9556, 9318, 9308, 2556, 2424, 1812, 1624, 1468, 1398, 1344, 1200,
1056, 888, 732, 732, 704, 684, 680, 666, 660, 636, 624,
576, 552, 544, 532, 468, 448, 448, 436]

ax1.barh(x[0:split], y[0:split])
ax2.barh(x[split:], y[split:])

結果: 在此處輸入圖像描述

進一步調整 plot 以使您的繪圖與您的示例相同。

暫無
暫無

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

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