ここでは「Matplotlib」を用いた棒グラフ(Axes.bar)を作成する方法について解説しています。
基本的な型
Axes.bar(x, height, width=0.8, bottom=None, align='center', data=None)
Axes.barの最低限の引数はx軸のデータ、高さのデータになります。
x | 入力データ(配列) |
height | 高さの指定。floatかarray-likeで指定。 |
width | 棒グラフの間隔。デフォルトでは0.8。floatかarray-likeで指定。 |
bottom | Barの底の位置指定。デフォルトではNone。floatかarray-likeで指定。 |
align | 棒グラフの位置設定。デフォルトではcenter。centerかedgeが指定できる。 |
基本的な型は以上になります。他にもオプションとして色やラベルの指定が可能です。
棒グラフ作成
デフォルトの棒グラフ
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#1---Data設定
x = np.arange(5)
y = [3,1,9,15,6]
#2---デフォルト設定
fig, ax = plt.subplots()
ax.bar(x, y)
fig.savefig("plot_bar1.png")
上記がプログラムになります。棒グラフの作成では2の部分に着目して下さい。
xがx軸、yがy軸のデータになります。
DataFrame型でのデータ設定
DataFrame型でデータをプロットしたい場合は以下のようにすることで可能です。
#2---デフォルト設定
data = {"x":x, "y":y}
fig, ax = plt.subplots()
ax.bar("x", "y", data=data)
出力結果はデフォルトと一緒なので省略します。
色の設定
単純な色変更
#2---color設定
fig, ax = plt.subplots()
ax.bar(x, y, color="g", edgecolor="black")
fig.savefig("plot_bar3.png")
棒グラフの色を緑、縁を黒に指定しています。
データごとに色を設定
#2---複数color設定
color ={"g","b","w","r","pink"}
fig, ax = plt.subplots()
ax.bar(x, y, color=color, edgecolor="black")
fig.savefig("plot_bar4.png")
データの数だけ色を指定することで変更できます。
ラベル設定
#2---label設定
label = ["v", "w", "x", "y", "z"]
fig, ax = plt.subplots()
ax.bar(x, y, tick_label=label)
fig.savefig("plot_bar5.png")
xデータの数だけラベルを定義することで設定可能です。
棒グラフの間隔設定
#2---間隔設定
fig, ax = plt.subplots()
ax.bar(x, y, width=0.2)
fig.savefig("plot_bar6.png")
複数のデータを並列表示する方法
8---並列
z = [4,2,10,16,7]
fig, ax = plt.subplots()
ax.bar(x, y,width=0.4)
ax.bar(x+0.4,z,width=0.4)
fig.savefig("plot_bar7.png")
zというデータを宣言しておき、bar()で呼び出すだけです。加えて、間隔を0.8(デフォルト)から狭めておく必要があります。ここでは、0.4にしています。
積み上げ棒グラフ
#2---積み上げ
z = [4,2,10,16,7]
fig, ax = plt.subplots()
ax.bar(x, y)
ax.bar(x,z,bottom=y)
fig.savefig("plot_bar8.png")
積み上げたいグラフをbarで呼び出して、その上でbottomで基の棒グラフを指定する必要があります。
最後に
簡単にまとめました。適宜、参照下さい。