こんにちはヤク学長です。
データサイエンティスト兼ファーマシストで、アルゴリズムやBI開発を行っています。
本記事の目的は、「pythonの基本操作を知る」ことを目的としています。
【本記事のもくじ】
まず、「Python」に真剣に取り組むための概要を解説します。
下記の方法で、簡単に概要を抑えることができます。
- 1.matplotlib
それでは、上から順番に見ていきます。
なお、本上記の方法を順番に抑えれば成果が出ます。
記事の内容は「転載 & 引用OK」問題ありません。
1.matplotlib
matplotlibとは
matplotlibはPythonのデータ可視化ライブラリであり、折れ線グラフ、散布図、ヒストグラムなどの様々な種類のグラフを描画することができます。matplotlibを使うことで、データの傾向やパターンを素早く把握することができます。また、グラフのスタイルやレイアウトをカスタマイズすることができます。matplotlibはNumPyやpandasとも連携することができ、データ解析の一環として広く使われています。
基本的なグラフを作成する plot関数 show関数
matplotlibのplot関数は、データをグラフに描画するための関数です。引数に渡された数値データを元に、線グラフを描画することができます。
以下は、plot関数を使って、y軸にsin関数の値を、x軸に0から2πまでの値を取る等間隔な数値を描画する例です。
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
plt.plot(x, y)
plt.show()
このコードを実行すると、sin関数のグラフが表示されます。
また、show関数は、グラフを描画するための関数です。plot関数でグラフを描画した後に、show関数を呼び出すことで、実際にグラフを表示することができます。
axis関数
axis()
関数は、グラフのx軸やy軸の範囲を指定することができる関数です。この関数に引数を指定することで、x軸やy軸の範囲を変更することができます。
以下は、x軸の範囲を[0, 5]、y軸の範囲を[-1, 1]に設定する例です。
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
plt.plot(x, y)
plt.axis([0, 5, -1, 1])
plt.show()
このコードを実行すると、x軸の範囲が[0, 5]、y軸の範囲が[-1, 1]に設定されたグラフが表示されます。
また、axis()
関数には、他にもいくつかの引数を指定することができます。具体的には、x軸とy軸の範囲を同時に指定する場合は、[xmin, xmax, ymin, ymax]
という形式で引数を指定します。また、x軸またはy軸の範囲を自動的に調整する場合は、'auto'
を引数に指定します。
複数のグラフを1つの図に描写する
複数のグラフを1つの図に描写するには、subplot関数を使用します。subplot関数は、図を複数のプロットに分割し、各プロットでグラフを描画します。
以下は、subplot関数を使用して、2つのグラフを1つの図に描画する例です。
import numpy as np
import matplotlib.pyplot as plt
# データの生成
x = np.arange(0, 10, 0.1)
y1 = np.sin(x)
y2 = np.cos(x)
# 1つ目のグラフの描画
plt.subplot(2, 1, 1)
plt.plot(x, y1, label='sin')
plt.legend()
# 2つ目のグラフの描画
plt.subplot(2, 1, 2)
plt.plot(x, y2, label='cos')
plt.legend()
# 図の表示
plt.show()
このコードでは、subplot関数に引数として、プロットの行数、列数、プロットの番号を指定しています。ここでは、2行1列のプロットを作成し、1つ目のプロットと2つ目のプロットをそれぞれ描画しています。図の表示には、show関数を使用しています。
legend関数
legend()
関数は、グラフに凡例(legend)を追加するために使用されます。凡例には、グラフに含まれる各要素の説明が表示されます。
例えば、2つのグラフを1つの図にプロットし、それぞれに凡例を追加する場合、以下のようにします。
import matplotlib.pyplot as plt
import numpy as np
# データの準備
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# グラフの描画
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
# 軸ラベルとタイトルの追加
plt.xlabel('x')
plt.ylabel('y')
plt.title('Trigonometric Functions')
# 凡例の追加
plt.legend()
# グラフの表示
plt.show()
上記の例では、label
引数を使用して、それぞれのグラフの名前を指定しています。legend()
関数を呼び出すことで、グラフに凡例が追加されます。legend()
関数を呼び出す前に、plot()
関数でlabel
引数を指定しておくことが必要です。また、loc
引数を使用して、凡例の位置を指定することもできます。例えば、loc='upper right'
とすると、凡例は右上に表示されます。
散布図を作成する scatter関数
散布図を作成するためには、matplotlibのscatter関数を使用します。scatter関数はx軸、y軸に対応するデータを受け取り、それらを散布図としてプロットします。
以下は、ランダムなデータを生成し、scatter関数で散布図を作成する例です。
import matplotlib.pyplot as plt
import numpy as np
# ランダムなデータを生成
x = np.random.rand(100)
y = np.random.rand(100)
# 散布図を作成
plt.scatter(x, y)
# グラフを表示
plt.show()
この例では、numpyのrandom.rand関数を使用して、0から1までのランダムな数値を100個生成し、それをx軸、y軸のデータとしてscatter関数に渡しています。その後、show関数を呼び出すことでグラフを表示しています。
散布図のマーカーの色や形、軸の範囲など、詳細な設定はscatter関数の引数を変更することで可能です。
棒グラフを作成する bar関数 xticks関数
棒グラフを作成するには、matplotlibのbar
関数を使います。以下は、例として年齢別の男女の人数を棒グラフで表示するコードです。
import matplotlib.pyplot as plt
import numpy as np
# 年齢別の男女の人数
men = [10, 15, 20, 25, 30]
women = [20, 25, 30, 35, 40]
ages = ['10s', '20s', '30s', '40s', '50s']
# 棒グラフを作成
x = np.arange(len(ages))
width = 0.35
fig, ax = plt.subplots()
rects1 = ax.bar(x - width/2, men, width, label='Men')
rects2 = ax.bar(x + width/2, women, width, label='Women')
# 軸やタイトルの設定
ax.set_ylabel('Number of People')
ax.set_title('Number of People by Age and Gender')
ax.set_xticks(x)
ax.set_xticklabels(ages)
ax.legend()
# グラフを表示
plt.show()
このコードでは、bar
関数で男女別の人数を棒グラフで表示し、xticks
関数でx軸の目盛りを設定しています。また、legend
関数で凡例を表示しています。show
関数でグラフを表示します。
円グラフを作成する pie関数
円グラフは、カテゴリごとのデータの比率を円形に表したグラフです。Pythonのmatplotlibライブラリのpie
関数を使用することで円グラフを作成することができます。
pie
関数の主な引数は以下の通りです。
x
: カテゴリごとの値のリストlabels
: カテゴリのラベルのリストautopct
: カテゴリごとの値の割合を表すテキストの書式startangle
: 最初のカテゴリの位置を時計回りで指定する角度(デフォルトは0度)colors
: 各カテゴリに割り当てる色のリストexplode
: 強調するカテゴリの割合を表すリスト
以下は、pie
関数を使用して円グラフを作成する例です。
import matplotlib.pyplot as plt
# カテゴリごとの値
values = [40, 30, 20, 10]
# カテゴリのラベル
labels = ['A', 'B', 'C', 'D']
# カテゴリごとの値の割合を表すテキストの書式
autopct = '%1.1f%%'
# 各カテゴリに割り当てる色のリスト
colors = ['red', 'blue', 'green', 'yellow']
# 強調するカテゴリの割合を表すリスト
explode = [0, 0, 0.1, 0]
# 円グラフを作成する
plt.pie(values, labels=labels, autopct=autopct, startangle=90, colors=colors, explode=explode)
# 円グラフを表示する
plt.show()
この例では、4つのカテゴリの値をリストで指定しています。また、各カテゴリのラベルをlabels
引数で指定しています。autopct
引数で各カテゴリの値の割合をテキストで表示し、colors
引数で各カテゴリに割り当てる色を指定しています。さらに、explode
引数でCカテゴリを強調しています。最後にpie
関数で円グラフを作成し、show
関数でグラフを表示しています。
というわけで、今回は以上です。大変大変お疲れ様でした。
引き続きで、徐々に発信していきます。
コメントや感想を受け付けています。ちょっとした感想でもいいので嬉しいです。
それでは、以上です。