33035


pandasのデータフレームから積み上げ棒グラフを作りたいです。  
classごとにグルーピングして、  
x軸にclass1 , class2 , class3 を配置して  
y軸にlabel を配置したいです。  
その時、y軸のlabelには 0 と 1がありますのでそれぞれの件数を積み上げ棒グラフで分けたいです。  
色も分けたいです。  
どのようなコードを書けばよろしいでしょうか？

サンプルコードは以下になります。

[code]

    import numpy as np
    import pandas as pd
    from io import StringIO
    
    #csvの生成
    csv_data='''label,class,gender
    1,1,1
    0,1,1
    0,1,0
    0,1,0
    0,1,0
    1,2,1
    1,2,1
    1,2,1
    1,2,0
    1,1,0
    0,3,1
    0,3,0
    0,3,0
    0,3,0
    
    df=pd.read_csv(StringIO(csv_data))
    
[/code]

# dfの中身を確認

[code]

    df
    
    
    label   class   gender
    0   1   1   1
    1   0   1   1
    2   0   1   0
    3   0   1   0
    4   0   1   0
    5   1   2   1
    6   1   2   1
    7   1   2   1
    8   1   2   0
    9   1   1   0
    10  0   3   1
    11  0   3   0
    12  0   3   0
    13  0   3   0
    
[/code]


CC BY-SA 3.0
2017-03-02T03:38:27.073
33034
2017-03-02T05:20:03.730
2017-03-02T05:20:03.730
14418
15001
question
python pandas python3
pandasのデータフレームから積み上げ棒グラフを作りたい


方針としてはまず`class`、`label`に関しクロス集計を行い、`class`軸と`label`軸のデータフレームを作りプロットします。`plot`には積み上げグラフ用のオプション`stacked`があるので指定します。

[code]

    pandas.crosstab(df['class'], df['label']).plot(kind='bar',stacked=True)
    
[/code]

[![画像の説明をここに入力](https://i.stack.imgur.com/dEvTf.png)](https://i.stack.imgur.com/dEvTf.png)


CC BY-SA 3.0
2017-03-02T04:25:50.233
33035
2017-03-02T04:25:50.233
14418
33034
answer