1
私はread_csvから読み込ま以下の表でデータフレームDF5を得た、Pythonのパンダ:プロット100%積み重ねグラフの問題
Week_Days,Category,Total_Products_Sold,Total_Profit
0.Monday,A,3221,9999.53
0.Monday,B,1038,26070.33
0.Monday,C,699,13779.56
0.Monday,E,3055,18157.26
0.Monday,F,47569,215868.15
0.Monday,G,2348,23695.25
0.Monday,H,6,57
0.Monday,I,14033,64594.24
0.Monday,J,13876,47890.91
0.Monday,K,3878,14119.74
0.Monday,L,243,2649.6
0.Monday,M,2992,16757.38
1.Tuesday,A,2839,8864.78
1.Tuesday,B,1013,26254.69
1.Tuesday,C,656,13206.98
1.Tuesday,E,2696,15872.45
1.Tuesday,F,43039,197621.18
1.Tuesday,G,2107,21048.72
1.Tuesday,H,3,17
1.Tuesday,I,12297,56942.99
1.Tuesday,J,12095,40724.2
1.Tuesday,K,3418,12551.26
1.Tuesday,L,243,2520.3
1.Tuesday,M,2375,13268.28
2.Wednesday,A,2936,9119.93
2.Wednesday,B,1061,26927.86
2.Wednesday,C,634,10424.05
2.Wednesday,E,2835,16627.35
2.Wednesday,F,46128,218014.59
2.Wednesday,G,1986,19173.64
4.Friday,H,24,233
4.Friday,I,17576,81648.75
4.Friday,J,16468,55820.9
4.Friday,K,4294,16603.39
4.Friday,L,440,4258.51
4.Friday,M,3600,20142.44
5.Saturday,A,4658,15051.13
5.Saturday,B,1492,38236.07
5.Saturday,C,1057,15449.7
5.Saturday,E,5335,29904.96
5.Saturday,F,79925,362120.61
5.Saturday,G,4324,44088.79
5.Saturday,H,26,933
5.Saturday,I,22688,106313.86
5.Saturday,J,21882,74725.11
5.Saturday,K,5402,20875.84
5.Saturday,L,458,4692.84
5.Saturday,M,4896,27769.68
6.Sunday,A,3429,11310.1
6.Sunday,B,1104,27282.99
6.Sunday,C,1051,11567.08
6.Sunday,E,3913,22740.63
6.Sunday,F,56048,259105.03
6.Sunday,G,3224,32528.39
6.Sunday,H,21,749
6.Sunday,I,15853,74876.77
6.Sunday,J,16072,55259.76
6.Sunday,K,4383,16058.36
6.Sunday,L,327,3348.82
6.Sunday,M,3551,20814.05
私は販売総製品のため、2〜100%積み上げ棒グラフをプロットしたいとTotal Profitをそれぞれ示します.x軸はWeek Daysで、ラベルは異なるカテゴリです。
販売総製品のための私のコードは
df5 = df5.set_index(['Week_Days', 'Category'])
df5 = df5.div(df5.sum(1), axis=0)
ax = df5[['Total_Products_Sold']].plot(kind='bar', stacked=True, width = 0.3, figsize=(20, 10), colormap="RdBu")
patches, labels = ax.get_legend_handles_labels()
ax.legend(bbox_to_anchor=(1.1, 1.0))
ax.set_xlabel('Week Days')
ax.set_ylabel('Products Sold')
私は戻ってしまったグラフは、私が必要とする何も見えないです。 100を積み重ねたものではなく、凡例はカテゴリの異なるカテゴリではなく、販売された製品の合計です。
誰かが助けてくださいことはできますか?ありがとう。
よろしく、 Lobbie
こんにちは、私はありがとう、ありがとうございました。 Excelピボットでデータを再生した後、同じ行に沿って考えていました。もう1つ質問ください。グラフ中のラベルは、(Total Products Sold、A)(販売された製品の合計、B)などを示しています。それは私が - >パッチ、labels = ax.get_legend_handles_labels()を使ったからでしょうか? A、B、Cだけを表示するにはどうすればいいですか? – Lobbie
ピボットテーブルの後に次の行を追加すると、マルチインデックスの最初のレベル(このピボットテーブルの 'Total_Products_Sold'だけです)が削除されます: 'tps.columns = tps.columns.droplevel()' – hume
こんにちは、とても。すべて今良い。 – Lobbie