matplotlibで棒グラフを複数系列並べる。
1 | Category = ["A", "B", "C", "D", "E"] # カテゴリ名 |
こんなデータがあったとして、理想はこれ↓
普通にこうすると
1 | from matplotlib import pyplot as plt |
こうなる↓
???
matplotlib、棒グラフを同じ場所に重ねる。
2系列
2系列なら簡単にできる。
引数のalign
でプロット位置が変わる。align="center"
で中心にプロット。align="edge"
で隅にプロット。デフォルトはこれ。
ついでにalpha=0.5
で半透明にする。
1 | plt.bar(Category , Value_1, color='b', width=0.3, label='001', alpha=0.5, align="edge") |
align
が2種類しかないのでこの方法だと3系列以上はできない。
3系列以上
めんどくさい。
plt.bar
の1つ目の引数でプロットするx座標を任意に指定できる。
これを系列ごとに少しだけ(ここでは0.2)ずらすことで重ならないようにしている。
1 | x_1 = [0, 1, 2, 3, 4] # 系列 1 をプロットするx座標 |
参考