Pythonで3Dグラフを描く
Pythonのmatplotlibを使って、CSVデータから3次元グラフを描いてみます。
目次
CSVデータから3次元プロットする手順
プロットするデータは、 以前の記事 で作成してcsv形式で保存したものです。
プロットする部分のコードは、 チュートリアル から持ってきました。
手順としてはこんな感じ。
matplotlib、Axes3D、numpy、pyplotをインポート
figureオブジェクトを作る
figureオブジェクトからAxes3Dオブジェクトを作る(projection='3d'のところ)
オブジェクトにデータを渡してplot
オブジェクトをshowで表示
3次元プロットの実施例
試してみました。
コードはこうしました。 プロットの元になるデータはdata.csvという名前で保存されているものとします。
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
import csv
# データ読み込み
with open('data.csv', mode='r', newline='') as f_in:
reader = csv.reader(f_in)
data_array = [row for row in reader]
# データ加工
cycle_length = 2300
cycle_freq = 2000
x = []
y = []
z = []
for j in range(4):
for i in range(j*cycle_freq,j*cycle_freq+cycle_length):
x.append(i-j*cycle_freq)
y.append(j)
z.append(float(data_array[i][1]))
# プロット
mpl.rcParams['legend.fontsize'] = 10
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot(x, y, z, label='signal')
ax.legend()
plt.show()
実行すると、こんなグラフが表示されます。
グラフをドラッグすると動くんですね。すごいなあ。
公開日
広告
Pythonでグラフカテゴリの投稿
- Pythonで3Dグラフを描く
- PythonでGIFアニメを作る(PILでアニメーションファイルを出力編)
- Pythonでグラフのアニメを作る(OpenCVでmp4ファイルを出力編)
- Pythonでグラフのコンテナを作る
- Pythonでグラフを描く
- Pythonでグラフ(Matplotlib)のアニメーションを作る(ArtistAnimation編)
- Pythonでグラフ(Matplotlib)のアニメーションを作る(FuncAnimation編)
- PythonのMatplotlibのグラフに領域を指示して最大値と最小値を取得する
- PythonのMatplotlibのグラフに領域を指示して最大値と最小値を取得する(GUI版)
- PythonのMatplotlibのグラフをNumPy行列に変換してOpenCVやPillowで使う
- Pythonのグラフのひな形