水平棒グラフの作成をした
アドベントカレンダー16日目です。
今日はmatplotlibで水平棒グラフを作成しました。
水平棒グラフとは
通常イメージする棒グラフは縦方向ですが、水平棒グラフは横に棒グラフが伸びていきます。こんな感じのが水平棒グラフです。
今回は、水平棒グラフをmatplotlibで作成したのでそれについて書いていきます。
水平棒グラフの作り方
plt.barh
を使うことで作成できます。ただし、plt.plot
とは少し値の指定が違うので気をつけてください。
いつも通り公式のドキュメントを見ましょう。 matplotlib.axes.Axes.barh — Matplotlib 2.1.1 documentation
必要となる値は、棒グラフの座標と高さです。 今回はサンプルのデータとして、適当にa-zの文字を1,000個選び、その個数を元に水平棒グラフを作成しました。 要素の種類の数だけ座標を作り、counterから個数とラベルをとりました。
import numpy as np from collections import Counter import matplotlib.pyplot as plt import string %matplotlib inline chars = string.ascii_uppercase char = [chars[x] for x in ary] counter = Counter(char) counter = counter.most_common() y = np.arange(len(counter)) width = [counter[x][1] for x in range(len(counter))] label = [counter[x][0] for x in range(len(counter))] plt.figure(figsize=(10,8),dpi=100) plt.barh(y, width, tick_label=label) plt.tick_params(labelsize = 15) plt.title("count") plt.xlabel("number") plt.grid() plt.show()
本当はメルカリのデータでやってたんですが、載せていいのかわからないのでダミーデータにしたらゴミっぽいグラフになりました。
今回のコード
参考
Pythonの大文字と数字によるランダムな文字列の生成 - string - random | CODE Q&A [日本語]