python x データ分析 | グラフ描画について情報整理(Matplotlib)~その2~
- 2023.05.10
- Python
![python x データ分析 | グラフ描画について情報整理(Matplotlib)~その2~](https://miseruit.com/wp-content/uploads/2023/05/図3-1-890x500.png)
みなさん、こんにちは!
今回はMatplotlibのグラフ種類を取り上げます。
目次
グラフの種類について
Matplotlibは、さまざまな種類のグラフを作成するための機能を提供しています。
以下に、Matplotlibで作成可能な主なグラフの種類をいくつか示します。
- 折れ線グラフ(Line plot):
plot()
- 散布図(Scatter plot):
scatter()
- 棒グラフ(Bar plot):
bar()
,barh()
- ヒストグラム(Histogram):
hist()
- 円グラフ(Pie chart):
pie()
- 箱ひげ図(Box plot):
boxplot()
- ヒートマップ(Heatmap):
imshow()
,pcolor()
,pcolormesh()
- 3Dプロット(3D plot):
plot_surface()
,scatter3D()
,plot_wireframe()
- コンタープロット(Contour plot):
contour()
,contourf()
- レーダーチャート(Radar chart):
polar()
上記は一部の例であり、Matplotlibはさまざまなグラフを作成するための機能を提供しています。
これらの関数を使用してデータを適切にプロットし、必要なカスタマイズを行うことで、目的に応じたグラフを作成することができます。
折れ線グラフ(Line plot)
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.plot(x, y)
plt.title('Line Plot')
plt.xlabel('X軸')
plt.ylabel('Y軸')
plt.show()
![](https://miseruit.com/wp-content/uploads/2023/05/image-41.png)
散布図(Scatter plot)
import matplotlib.pyplot as plt
import random
x = [random.uniform(1, 5) for _ in range(100)] # 1から5の範囲で乱数を生成
y = [random.gauss(0, 1) + xi * 2 for xi in x] # 平均0、標準偏差1の正規分布に従った値にxの2倍を加える
plt.scatter(x, y)
plt.title('Scatter Plot')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
![](https://miseruit.com/wp-content/uploads/2023/05/image-44.png)
棒グラフ(Bar plot)
import matplotlib.pyplot as plt
categories = ['A', 'B', 'C', 'D']
values = [10, 23, 17, 12]
plt.bar(categories, values)
plt.title('Bar Plot')
plt.xlabel('category')
plt.ylabel('value')
plt.show()
![](https://miseruit.com/wp-content/uploads/2023/05/image-43.png)
ヒストグラム(Histogram)
import matplotlib.pyplot as plt
import random
data = [random.gauss(0, 1) for _ in range(1000)] # 平均0、標準偏差1の正規分布に従う乱数を生成
plt.hist(data, bins=30) # データとビンの数を指定
plt.title('Histogram')
plt.show()
![](https://miseruit.com/wp-content/uploads/2023/05/image-45.png)
円グラフ(Pie chart)
import matplotlib.pyplot as plt
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
colors = ['red', 'green', 'blue', 'orange']
plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%')
plt.title('Pie Chart')
plt.show()
※ autopct='%1.1f%%'
は、各要素の割合をパーセント表示するための書式指定です。
![](https://miseruit.com/wp-content/uploads/2023/05/image-46.png)
箱ひげ図(Box plot)
import matplotlib.pyplot as plt
import random
data1 = [random.normalvariate(0, 1) for _ in range(1000)]
data2 = [random.normalvariate(0, 1) for _ in range(1000)]
data3 = [random.normalvariate(0, 1) for _ in range(1000)]
plt.boxplot([data1,data2,data3])
plt.title('Box Plot')
plt.xlabel('Data')
plt.ylabel('Value')
plt.show()
![](https://miseruit.com/wp-content/uploads/2023/05/image-47.png)
ヒートマップ(Heatmap)
import numpy as np
import matplotlib.pyplot as plt
data = np.random.rand(50, 50)
plt.imshow(data, cmap='hot') # ヒートマップの描画
plt.colorbar() # カラーバーの表示
plt.title('Heatmap')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
![](https://miseruit.com/wp-content/uploads/2023/05/image-48.png)
3Dプロット(3D plot)
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# データの生成
theta = np.linspace(0, 2 * np.pi, 100) # 角度
z = np.linspace(-2, 2, 100) # 高さ
r = z**2 + 1 # 半径
x = r * np.cos(theta) # x座標
y = r * np.sin(theta) # y座標
# 3Dプロットの描画
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot(x, y, z)
# グラフのタイトルと軸ラベル
ax.set_title('3D Plot')
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
# グラフの表示
plt.show()
![](https://miseruit.com/wp-content/uploads/2023/05/image-49.png)
このコードでは、numpy
モジュールを使用してデータを生成しています。
theta
は0から2πまでの角度、z
は-2から2までの高さ、r
は半径です。
x
とy
は極座標からの変換を行い、3Dプロットを行うための座標データを作成しています。
mpl_toolkits.mplot3d
モジュールのAxes3D
を使用して3Dプロットを作成し、plot()
関数でデータをプロットしています。
コンタープロット(Contour plot)
import numpy as np
import matplotlib.pyplot as plt
# データの生成
x = np.linspace(-2, 2, 100)
y = np.linspace(-2, 2, 100)
X, Y = np.meshgrid(x, y)
Z = X**2 + Y**2 # 高さの計算
# コンタープロットの描画
plt.contour(X, Y, Z, levels=10)
# カラーバーの表示
plt.colorbar()
# グラフのタイトルと軸ラベル
plt.title('Contour Plot')
plt.xlabel('X')
plt.ylabel('Y')
# グラフの表示
plt.show()
![](https://miseruit.com/wp-content/uploads/2023/05/image-50.png)
レーダーチャート(Radar chart)
import numpy as np
import matplotlib.pyplot as plt
# データの準備
categories = ['A', 'B', 'C', 'D', 'E'] # カテゴリのリスト
values = [4, 3, 5, 2, 4] # 各カテゴリの値
N = len(categories)
angles = np.linspace(0, 2 * np.pi, N, endpoint=False).tolist()
values += values[:1]
angles += angles[:1]
# レーダーチャートの描画
fig, ax = plt.subplots(figsize=(6, 6), subplot_kw={'polar': True})
ax.plot(angles, values, linewidth=1, linestyle='solid')
ax.fill(angles, values, alpha=0.25)
# カテゴリラベルの設定
ax.set_xticks(angles[:-1])
ax.set_xticklabels(categories)
# グラフのタイトル
plt.title('Radar Chart')
# グラフの表示
plt.show()
![](https://miseruit.com/wp-content/uploads/2023/05/image-51.png)
今回は以上です!
エラー: データの取得に失敗しました。
-
前の記事
python x データ分析 | グラフ描画について情報整理(Matplotlib)~その1~ 2023.05.09
-
次の記事
python x データ分析 | グラフ描画について情報整理(Matplotlib)~その3:matplotlib.animation~ 2023.05.10