Python Matplotlibのグラフの基本

Python学習【365日チャレンジ!】322日目のマスターU(@Udemy11)です。

年末の大掃除はもう終わりましたか?

毎年フローリングにワックスをかけるのが恒例行事になっているのですが、今年はやめておこうかという気持ちに誘惑されつつも、きっちりとワックスをかけることができました。

毎年ワックスをかけていることもあって、床の傷みは少ないように思うのですが、こればっかりは、他人の家と比べようがないので、ある意味自己満足の領域のような気がします。

ワックスがけが終わらないことには、年を越せない雰囲気があるので、来年以降もきっちりとワックスをかける予定ではいるのですが、先の話はどうなるかわからないですよね。

今年も残すところ、あと3日ですが、Python学習365日チャレンジ達成まであと43日なので、気を引き締めて残りの日数を継続していきたいと思います、

それでは今日も、Python学習を始めましょう。

昨日の復習

昨日は、グラフ描写ライブラリのMatplotlibの基本を学習しました。

折れ線グラフを書いて、マーカーの形や色を変更したり、ラベルを追加したり、X軸やY軸の表示範囲を指定してグラフを表示しました。

リストを一つ指定するだけでグラフを描写することができましたが、複数の値を入れて複数のグラフを描写することもできました。

詳細については、昨日の記事をごらんください。

今日は、引き続き、グラフ描写ライブラリのMatplotlibを学習します。

scatter(散布図)

複数の値が散布されている散布図を作成してみます。

import matplotlib.plot as plt
import numpy as np
x = np.random.rand(50)
y = np.random.rand(50)
colors = np.random.rand(50)
area = np.random.rand(50) *100
plt.scatter(x, y, s=area, c=colors, alpha=0.5, marker="*")
plt.show()

Python Matplotlibでいろいろなグラフを書いてみる

matplotlibnumpyをインポートして、グラフの要素を書いていきます。

random.rand(50)で0以上1未満のランダムな値を50個入れた配列をxycolors、この値に100をかけた配列をareaに代入します。

plt.scatterで、X軸、Y軸、範囲、色、透明度、マーカーの形を指定して、plt.show()でグラフを表示しています。

bar(棒グラフ)

次は棒グラフです。

objects = ('a', 'b', 'c', 'd', 'e', 'f')
y_pos = np.arange(len(objects))
values = [1, 2, 3, 4, 5, 6]

plt.bar(y_pos, values, alpha=0.5)
plt.xticks(y_pos, objects)
plt.ylabel('number')
plt.title('bar chart')
plt.show()

Python Matplotlibでいろいろなグラフを書いてみる

最初にX軸に使う値をobjectsで定義して、その長さ(6)をy_posに代入し、valuesに1から6までのリストを代入します。

グラフは、plt.barで、引数にy_posvaluesalphaで透明度を指定した棒グラフを作ります。

xticksでX軸の値を指定して、ylabelでY軸のラベル、titleでグラフのタイトルを指定してからグラフを表示しています。

pie(円グラフ)

円グラフで色を付けて値の割合をパーセント表示してみます。

labels = ('Python', 'Java', 'Rudy', 'PHP')
sizes = (10, 20, 30, 40)
colors = ['red', 'yellow', 'orange', 'green']

plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%')
plt.axis('equal')
plt.show()

Python Matplotlibでいろいろなグラフを書いてみる

まず、labelsに4つのプログラミング言語の名前を入れ、sizesで、それぞれの値を入れ、最後にcolorsで4色の色を定義しています。

plt.pieの引数にsizeslabelscolorsに加えて、autopct=%1.1f%%で、小数点第1位までのパーセンテージの値に%を付けた値を指定し、plt.axis('equal')で円グラフの値を真円にして、グラフを表示しています。

plt.axis('equal')をコメントアウトすると、楕円になるので、一度試してみてください。

legend(凡例)

最後はlegend(凡例)を表示して2つのグラフを描いてみます。

y = [2, 4, 8, 16, 32]
y2  = [10, 11, 12, 13, 14]
x = np.arange(5)

plt.plot(x, y, label='Y')
plt.plot(x, y2, label='Y2')
plt.legend()
plt.show()

Python Matplotlibでいろいろなグラフを書いてみる

yy2の5つの値を入れたリストを作り、xには、rarangeで5つの値が入った配列を作っています。

plt.plotで、2つのグラフを作成し、ラベルを指定します。

plt.legend()を入れることで、グラフのラベルを凡例として表示することができます。

まとめ

4種類のグラフを作成しましたが、もっとたくさんの種類のグラフや、もっと細かい要素を指定したグラフを作成することができます。

たくさんありすぎて、全てを覚える必要はありませんが、基本的な棒グラフや円グラフなどは覚えておいても損はありません。

実際に実践するときは、Matplotlibのドキュメントを見ながらいろいろと試してみるのが効果的な使い方だと思います。

それでは、明日もGood Python!