【簡単python】matplotlib.pyplot.bart()を使えば棒ブラフが描ける。色・線の太さなどのカスタマイズにもチャレンジ。

今回は棒グラフを書いて。いろいろなカスタマイズもしてみます。下のグラフは何もカスタマイズしていない状態のグラフです。まずはこれを書いていろいろ変更していきましょう。

棒グラフを書いてみる

上の棒グラフを書く一番簡単な方法はコチラ。matplotlib.pyplot.bart()メソッドを使うことで簡単に書けます。何はともあれ、下のコードを張り付けて実行してみてください。

import numpy as np

x = np.arange(10) #X軸データ
y = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90, 100]) #y軸データ
plt.bar(x, y) #棒グラフ生成
plt.show() #グラフ表示

しかし色を変えたり、2つのグラフを同時に書いたり、違うデータを積み上げたりしたいですよね。それに必要なmatplotlib.pyplot.bart()のパラメータは次の通りとなります。これらを使って棒グラフのカスタマイズをいくつか試してみます。

パラメータ説明
left (必須)各棒の X 軸上の数値
height (必須)各棒の高さ
width棒の太さ (デフォルト値: 0.8)
bottom各棒の下側の余白
(主に積み上げ棒グラフを出力するために使います)
color棒の色
edgecolor棒の枠線の色
linewidth棒の枠線の太さ
linestype棒の枠線のスタイル
tick_labelX 軸のラベル
xerrX 軸方向のエラーバー (誤差範囲) を出力する場合、数値または配列を指定
yerrY 軸方向のエラーバー (誤差範囲) を出力する場合、数値または配列を指定
ecolorエラーバーの色を値または配列で指定
capsizeエラーバーの傘のサイズを指定
align棒の位置
’edge’ (垂直方向の場合:左端, 水平方向の場合:下端) または ‘center’ (中央)を指定 (デフォルト値: ‘edge’ )
logTrue に設定すると、対数目盛で出
力し (デフォルト値: False)

横軸にラベルを付ける

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10) # X軸データ
y = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90, 100])# y軸データ

labels = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
plt.bar(x, y, tick_label=labels, align="center")

plt.show()# グラフ表示

2つのデータで積み上げ棒グラフを作る

x = np.arange(5) # X軸データ
y1= np.array([10, 20, 30, 40, 50])# y1データ
y2 = np.array([20, 10, 0, 10, 20])# y2データ

label = [ "Banana", "Orange","Apple", "Strawberry", "Grape"]

p1 = plt.bar(x, y1, color="red", tick_label=label, align="center")
p2 = plt.bar(x, y2, bottom=y1, color="blue", tick_label=label, align="center")
plt.legend((p1[0], p2[0]), ("Shop A", "Shop B"))

2つのグラフを並べる

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(5) # X軸データ
y1= np.array([10, 20, 30, 40, 50])# y1データ
y2 = np.array([20, 10, 0, 10, 20])# y2データ

label = [ "Banana", "Orange","Apple", "Strawberry", "Grape"]

p1 = plt.bar(x, y1, color="red", align="edge", width=-0.3, tick_label=label)
p2 = plt.bar(x, y2, color="blue", align="edge", width= 0.3, tick_label=label)

plt.legend((p1[0], p2[0]), ("Shop A", "Shop B"))


今回は棒グラフを書いてみました。




タイトルとURLをコピーしました