質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

1703閲覧

pyqtgraphにWavファイルの波形を表示したい。

OKA-G

総合スコア16

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/07/23 10:47

Wavファイルはwave.open(ファイル名)で読み込みます。

pyqtgraphに表示するためにはどのような方法が考えられますでしょうか。

Pyton

1# -*- coding: utf-8 -*- 2import sys 3import numpy as np 4from scipy import signal 5from scipy.io.wavfile import write 6from PySide2.QtWidgets import * 7from PySide2.QtCore import * 8import winsound as ws 9import wave 10import pyqtgraph as pg 11#--------------------------------------------------- 12# Window 13#--------------------------------------------------- 14class Gui(QDialog): 15 def __init__(self, parent=None): 16 super(Gui, self).__init__(parent) 17 self.design() 18 19 def design(self): 20 # button 21 self.button = QPushButton('Push') 22 # Graph 23 self.graph = pg.PlotWidget() 24 self.graph.setMinimumSize(500, 250) 25 self.graph.setMaximumSize(500, 250) 26 # layout 27 layout = QVBoxLayout(self) 28 layout.addWidget(self.graph) 29 layout.addWidget(self.button) 30 # Connect 31 self.button.clicked.connect(self.setWave) 32 33 def setWave(self): 34 pass 35 36if __name__ == '__main__': 37 app = QApplication(sys.argv) 38 g = Gui() 39 g.show() 40 sys.exit(app.exec_())

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

以下のような感じで描画できます。

Python

1 def setWave(self): 2 wf = wave.open('~.wav', 'r') 3 buf = wf.readframes(wf.getnframes()) 4 data = np.frombuffer(buf, dtype="int16") 5 self.graph.plot(data)

イメージ説明

投稿2020/07/23 11:38

can110

総合スコア38262

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

OKA-G

2020/07/23 11:56

ありがとうございます。 すごく助かりました。 もう一つだけ質問なのですが、setWave()を実行するたびにグラフの中身をリセットする方法ってありますか? 何度実行しても常に一つだけ表示させたいです。
can110

2020/07/23 12:03

分かりません。 とりあえずひととおりhttps://pyqtgraph.readthedocs.io/en/latest/index.htmlに目を通して目的のものがないか探してみてください。
OKA-G

2020/07/23 12:22

分かりました。 ご丁寧にありがとうございます。
OKA-G

2020/07/23 12:34

self.graph.clear()で出来ました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問