Open monkeycc opened 7 months ago
I want to use DearPyGui to complete it But it's unclear how to port to DearPyGui
import queue import sys from matplotlib.animation import FuncAnimation import matplotlib.pyplot as plt import numpy as np import sounddevice as sd channels = [1] window = 200 interval = 30 downsample = 10 mapping = [c - 1 for c in channels] q = queue.Queue() def audio_callback(indata, frames, time, status): if status: print(status, file=sys.stderr) q.put(indata[::downsample, mapping]) def update_plot(frame): global plotdata while True: try: data = q.get_nowait() except queue.Empty: break shift = len(data) plotdata = np.roll(plotdata, -shift, axis=0) plotdata[-shift:, :] = data for column, line in enumerate(lines): line.set_ydata(plotdata[:, column]) return lines try: device_info = sd.query_devices(None, "input") samplerate = device_info["default_samplerate"] length = int(window * samplerate / (1000 * downsample)) plotdata = np.zeros((length, len(channels))) fig, ax = plt.subplots() lines = ax.plot(plotdata) if len(channels) > 1: ax.legend( [f"thoroughfare {c}" for c in channels], loc="lower left", ncol=len(channels), ) ax.axis((0, len(plotdata), -1, 1)) ax.set_yticks([0]) ax.yaxis.grid(True) ax.tick_params( bottom=False, top=False, labelbottom=False, right=False, left=False, labelleft=False, ) fig.tight_layout(pad=0) stream = sd.InputStream( device=None, channels=max(channels), samplerate=samplerate, callback=audio_callback, ) ani = FuncAnimation(fig, update_plot, interval=interval, blit=True) with stream: plt.show() except Exception as e: print(type(e).__name__ + ": " + str(e))
https://github.com/my1e5/dpg-examples/blob/main/plots/plot_update_time_data.py
I want to use DearPyGui to complete it But it's unclear how to port to DearPyGui
https://github.com/my1e5/dpg-examples/blob/main/plots/plot_update_time_data.py