matplotlib入門

準備中です。

線グラフ

このプログラムでは、hoursに0時から23時までの時間を、temperaturesに仮の気温データを設定しています。plt.plot()関数で線グラフを描画し、plt.show()で表示します。

import matplotlib.pyplot as plt

# 1日の時間(0時から23時まで)
hours = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
# hours = range(0, 24)
# or
# hours = list(range(0,24))

# 仮の気温データ(例として、朝から昼にかけて気温が上がり、夜にかけて下がるパターン)
temperatures = [12, 11, 10, 9, 8, 8, 9, 12, 16, 20, 23, 25, 27, 28, 27, 25, 22, 20, 18, 16, 15, 14, 13, 12]

# プロットの作成
plt.plot(hours, temperatures, marker='o')
plt.title('Hourly Temperature Throughout the Day')  # タイトルを英語に設定
plt.xlabel('Hour of the Day')  # x軸のラベル
plt.ylabel('Temperature (°C)')  # y軸のラベル
plt.grid(True)  # グリッドの表示
plt.xticks(hours)  # x軸の目盛りを1時間ごとに設定
plt.show()  # グラフの表示

このコードでは、numpyを使ってデータを生成し、matplotlibを使ってそのデータをプロットしています。plt.plot()関数で線グラフを描画し、plt.show()で表示します。

import matplotlib.pyplot as plt
import numpy as np

# データの準備
x = np.linspace(0, 10, 100)  # 0から10までの100点のデータを生成
y = np.sin(x)  # サイン波を生成

# プロットの作成
plt.plot(x, y)
plt.title('Basic Line Graph')  # タイトルを英語に設定
plt.xlabel('x-axis')  # x軸のラベル
plt.ylabel('y-axis')  # y軸のラベル
plt.grid(True)  # グリッドの表示
plt.show()  # グラフの表示

複数のデータセットを表示する線グラフのプログラム例です。このプログラムでは、サイン波とコサイン波の2つのデータセットを同じグラフにプロットし、タイトルを英語に設定しています。plt.legend()で凡例を表示し、どの線がどのデータセットに対応しているかを示しています。

import matplotlib.pyplot as plt
import numpy as np

# データの準備
x = np.linspace(0, 10, 100)  # 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.legend()  # 凡例の表示
plt.title('Displaying Multiple Datasets')  # タイトルを英語に設定
plt.xlabel('x-axis')  # x軸のラベル
plt.ylabel('y-axis')  # y軸のラベル
plt.grid(True)  # グリッドの表示
plt.show()  # グラフの表示

棒グラフ

このコードでは、xにカテゴリ名、yにそれぞれのカテゴリの値を設定しています。plt.bar()関数を使って棒グラフを作成し、plt.show()で表示します。

import matplotlib.pyplot as plt

# データの準備
x = ['A', 'B', 'C', 'D']
y = [10, 20, 15, 25]

# 棒グラフの作成
plt.bar(x, y)

# グラフのタイトルとラベルの設定
plt.title('Sample Bar Chart')
plt.xlabel('Categories')
plt.ylabel('Values')

# グラフの表示
plt.show()

円グラフ

このコードでは、plt.pie()関数を使って円グラフを作成しています。autopct='%1.1f%%'は各セグメントの割合をパーセンテージで表示するためのフォーマットです。startangle=90は円グラフの開始角度を設定しています。

import matplotlib.pyplot as plt

# データの準備
labels = ['A', 'B', 'C', 'D']
sizes = [10, 20, 15, 25]

# 円グラフの作成
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)

# グラフのタイトル設定
plt.title('Sample Pie Chart')

# グラフの表示
plt.show()

散布図

このコードでは、numpyを使って50個のランダムなデータポイントを生成し、それをplt.scatter()関数を使って散布図として表示しています。

import matplotlib.pyplot as plt
import numpy as np

# データの準備
x = np.random.rand(50) * 100  # 0から100の範囲でランダムな値を生成
y = np.random.rand(50) * 100  # 0から100の範囲でランダムな値を生成

# 散布図の作成
plt.scatter(x, y)

# グラフのタイトルとラベルの設定
plt.title('Sample Scatter Plot')
plt.xlabel('X Values')
plt.ylabel('Y Values')

# グラフの表示
plt.show()

本来は ( y = x ) に乗るデータに誤差を加えた散布図を作成するプログラム例を示します。

このコードでは、np.linspaceを使って0から100の範囲で等間隔の20個のデータを生成し、np.random.normalを使って平均0、標準偏差10の正規分布に従う誤差を加えて、それをplt.scatter()関数を使って散布図として表示しています。さらに、plt.plot()関数を使って理想的な直線 ( y = x ) を赤い破線で表示しています。

import matplotlib.pyplot as plt
import numpy as np

# データの準備
x = np.linspace(0, 100, 20)  # 0から100の範囲で等間隔の20個のデータを生成
y = x + np.random.normal(0, 10, 20)  # y = x に正規分布に従う誤差を加える

# 散布図の作成
plt.scatter(x, y)

# y = x の直線を追加
plt.plot(x, x, color='red', linestyle='--', label='y = x')

# グラフのタイトルとラベルの設定
plt.title('Scatter Plot with Noise')
plt.xlabel('X Values')
plt.ylabel('Y Values')
plt.legend()

# グラフの表示
plt.show()