Pythonで3Dグラフを描く

Pythonのmatplotlibを使って、CSVデータから3次元グラフを描いてみます。

目次

  1. CSVデータから3次元プロットする手順
  2. 3次元プロットの実施例

CSVデータから3次元プロットする手順

プロットするデータは、 以前の記事 で作成してcsv形式で保存したものです。

プロットする部分のコードは、 チュートリアル から持ってきました。

手順としてはこんな感じ。

  1. matplotlib、Axes3D、numpy、pyplotをインポート
  2. figureオブジェクトを作る
  3. figureオブジェクトからAxes3Dオブジェクトを作る(projection='3d'のところ)
  4. オブジェクトにデータを渡してplot
  5. オブジェクトを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()

実行すると、こんなグラフが表示されます。

../../_images/python_mplot3d_lineplot_01.png

グラフをドラッグすると動くんですね。すごいなあ。

../../_images/python_mplot3d_lineplot_02.png

広告

Pythonでグラフカテゴリの投稿