← All skills
Tencent SkillHub Β· AI

Pywayne Plot

Enhanced spectrogram visualization tools for time-frequency analysis. Use when creating spectrograms, spectral analysis, or time-frequency plots for signals...

skill openclawclawhub Free
0 Downloads
0 Stars
0 Installs
0 Score
High Signal

Enhanced spectrogram visualization tools for time-frequency analysis. Use when creating spectrograms, spectral analysis, or time-frequency plots for signals...

⬇ 0 downloads β˜… 0 stars Unverified but indexed

Install for OpenClaw

Quick setup
  1. Download the package from Yavira.
  2. Extract the archive and review SKILL.md first.
  3. Import or place the package into your OpenClaw setup.

Requirements

Target platform
OpenClaw
Install method
Manual import
Extraction
Extract archive
Prerequisites
OpenClaw
Primary doc
SKILL.md

Package facts

Download mode
Yavira redirect
Package format
ZIP package
Source platform
Tencent SkillHub
What's included
SKILL.md

Validation

  • Use the Yavira download entry.
  • Review SKILL.md after the package is downloaded.
  • Confirm the extracted package contains the expected setup assets.

Install with your agent

Agent handoff

Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.

  1. Download the package from Yavira.
  2. Extract it into a folder your agent can access.
  3. Paste one of the prompts below and point your agent at the extracted folder.
New install

I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.

Upgrade existing

I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.

Trust & source

Release facts

Source
Tencent SkillHub
Verification
Indexed source record
Version
0.1.0

Documentation

ClawHub primary doc Primary doc: SKILL.md 17 sections Open source page

Pywayne Plot

Enhanced spectrogram visualization tools for professional time-frequency analysis.

Quick Start

import matplotlib.pyplot as plt from pywayne.plot import regist_projection, parula_map import numpy as np # Register custom projection regist_projection() # Create spectrogram fig, ax = plt.subplots(subplot_kw={'projection': 'z_norm'}) spec, freqs, t, im = ax.specgram( x=signal_data, Fs=100, NFFT=128, noverlap=96, cmap=parula_map, scale='dB' ) ax.set_ylabel('Frequency (Hz)') plt.colorbar(im, label='Magnitude (dB)') plt.show()

regist_projection

Register the custom SpecgramAxes projection. Must be called before using the enhanced specgram functionality. from pywayne.plot import regist_projection regist_projection()

SpecgramAxes.specgram

Enhanced spectrogram with advanced features. Key Parameters: ParameterDescriptionDefaultNFFTFFT window length (points)256FsSampling frequency (Hz)2noverlapOverlap points between windows128cmapColormap (use parula_map)-mode'psd', 'magnitude', 'angle', 'phase''psd'scale'dB' or 'linear''dB'normalize'global', 'local', 'none''global'freq_scaleFrequency scaling factor1.0FcCenter frequency offset (Hz)0 Returns: spec - 2D spectrogram array (n_freqs, n_times) freqs - Frequency axis array t - Time axis array im - matplotlib image object (for colorbar)

get_specgram_params

Auto-recommend STFT parameters based on signal characteristics. from pywayne.plot import get_specgram_params params = get_specgram_params( signal_length=10000, sampling_rate=100, time_resolution=0.1 # or freq_resolution=0.5 ) # Returns: NFFT, noverlap, actual_freq_res, actual_time_res, n_segments

parula_map

MATLAB-style perceptually uniform colormap for scientific visualization. from pywayne.plot import parula_map plt.imshow(data, cmap=parula_map)

IMU Signal Analysis

fs = 100 # Sampling rate win_time, step_time = 1, 0.1 fig, ax = plt.subplots(subplot_kw={'projection': 'z_norm'}) spec, freqs, t, im = ax.specgram( x=acc_data, Fs=fs, NFFT=int(win_time * fs), noverlap=int((win_time - step_time) * fs), scale='dB', cmap=parula_map ) ax.set_ylabel('Frequency (Hz)') ax.set_ylim(0, 30)

Physiological Signals (PPG - Heart Rate)

# Convert Hz to bpm for heart rate visualization fig, ax = plt.subplots(subplot_kw={'projection': 'z_norm'}) spec, freqs, t, im = ax.specgram( x=ppg_signal, Fs=100, NFFT=400, noverlap=300, freq_scale=60, # Hz -> bpm scale='dB' ) ax.set_ylabel('Heart Rate (bpm)') ax.set_ylim(40, 180)

Vibration Analysis with Global Normalization

fig, ax = plt.subplots(subplot_kw={'projection': 'z_norm'}) spec, freqs, t, im = ax.specgram( x=vibration_data, Fs=1000, NFFT=1024, noverlap=512, scale='linear', normalize='global' ) plt.colorbar(im, label='Normalized Magnitude')

High-Resolution Analysis with Zero-Padding

fig, ax = plt.subplots(subplot_kw={'projection': 'z_norm'}) spec, freqs, t, im = ax.specgram( x=signal, Fs=100, NFFT=100, pad_to=512, # Zero-pad for smoother spectrum noverlap=80, scale='dB' )

Scale Modes

ModeDescriptionUse CasedBLogarithmic (10log10 for PSD, 20log10 for magnitude)Large dynamic range signalslinearLinear amplitudeDirect amplitude comparison

Normalization Modes (only for scale='linear')

ModeDescriptionUse CaseglobalZ/max(Z), preserves relative intensityCompare intensity across timelocalPer-column normalization to [0,1]Focus on frequency content over timenoneNo normalizationRaw spectrogram values

Frequency Scaling

freq_scaleUnitUse Case1.0HzDefault, most signals60bpmHeart rate, respiration rate0.001kHzAudio signals Example: freq_scale=60 converts 2 Hz β†’ 120 bpm

Resolution Guidelines

Frequency resolution: Ξ”f = Fs / NFFT Time resolution: Ξ”t = (NFFT - noverlap) / Fs Trade-off: Cannot simultaneously achieve high frequency and time resolution Use get_specgram_params() to auto-calculate optimal parameters.

Interactive Analysis

spec, freqs, t, im = ax.specgram(...) def on_click(event): if event.xdata and event.inaxes == ax: time_idx = np.argmin(np.abs(t - event.xdata)) plt.figure() plt.plot(freqs, spec[:, time_idx]) plt.title(f'FFT at t={event.xdata:.2f}s') plt.show() fig.canvas.mpl_connect('button_press_event', on_click)

Application Areas

IMU data: Accelerometer and gyroscope analysis Physiological signals: PPG (heart rate), ECG, respiration Vibration analysis: Machinery fault diagnosis Audio processing: Speech and audio spectrum analysis

Notes

Always call regist_projection() before using projection='z_norm' parula_map is recommended for best perceptual uniformity dB mode automatically handles log(0) issues For better FFT efficiency, set NFFT to power of 2

Category context

Agent frameworks, memory systems, reasoning layers, and model-native orchestration.

Source: Tencent SkillHub

Largest current source with strong distribution and engagement signals.

Package contents

Included in package
1 Docs
  • SKILL.md Primary doc