1
2

More than 3 years have passed since last update.

データのプロット|Pythonでグラフ描画

Posted at

2本の折れ線グラフ

Pythonで折れ線を描画しました。
点などを描画することをプロット(plot)と言い、データをプロットした図がグラフです。
MatplotlibはPythonのためのオープンソースライブラリになります。
そのMatplotlibをimportして作図してみました。
最後に必ずplt.show()メソッドを忘れないようにします。

1)同一枠に2本の折れ線

スクリーンショット 2020-06-14 0.28.40.jpg

  • サンプルコード1:Python
matPlt.py
import matplotlib.pyplot as plt

x = [100, 200, 300, 400, 500, 600]
y1 = [10, 20, 35, 50, 80, 130]
y2 = [10, 12, 18, 30, 45, 80]

# プロット箇所を●, 色を赤, 線を '--' に設定
plt.plot(x, y1, marker="o", color ="red", linestyle="--")
# プロット箇所を▼, 色を青, 線を ':' に設定
plt.plot(x, y2, marker="v", color ="blue", linestyle=":")
# 忘れずに
plt.show()

2)別の枠にそれぞれ折れ線

それぞれのY軸表記に違いが表れていることに注目できますね。
スクリーンショット 2020-06-14 0.47.41.jpg

  • サンプルコード2:同様にPython
matPltAx1Ax2.py
import matplotlib.pyplot as plt2

x = [100, 200, 300, 400, 500, 600]
y1 = [10, 20, 35, 50, 80, 130]
y2 = [10, 12, 18, 30, 45, 80]

fig = plt2.figure()

# 1行2列に分割した中の左側
ax1 = fig.add_subplot(1, 2, 1)
# プロット箇所を●, 色を赤, 線を '--' にする
ax1.plot(x, y1, marker="o", color ="red", linestyle="--")

# 1行2列に分割した中の右側
ax2 = fig.add_subplot(1, 2, 2)
# プロット箇所を▼, 色を青, 線を ':' にする
ax2.plot(x, y2, marker="v", color ="blue", linestyle=":")

# 大事です
plt2.show()

3)がんばったら正弦波も!

プロットすることを応用すればSIN波も描画できます。
スクリーンショット 2020-06-14 1.24.34.jpg

  • サンプルコード3:またもPython
matPltSinWav.py
import wave
import numpy as np
from matplotlib import pylab as plt
import struct

a = 1  # 振幅
fs = 500  # サンプリング周波数
f0 = 5  # 周波数
sec = 5  # 秒

swav = []

for n in np.arange(fs * sec):
    # サイン波を生成
    s = a * np.sin(2.0 * np.pi * f0 * n / fs)
    swav.append(s)

# サイン波を表示
plt.plot(swav[0:100])
# 大事なとこ
plt.show()

もちろんCOS波だって可能です。
スクリーンショット 2020-06-14 1.29.42.jpg

まとめ

NumpyとMatplotlibの計算結果を、例えばwavファイルとして書き出せば音源を作成することもできるんじゃないでしょうか。
可能性はいくらでも広がりますね。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2