Wizard Notes

音楽信号解析の技術録、音楽のレビューおよび分析、作曲活動に関する雑記です

matplotlib

matplotlibを使ったインタラクティブなプロット(サンプルコード付き)

gui programming with matplotlib pic.twitter.com/kEI863X14U— Kurene (@_kurene) May 11, 2020 何番煎じか分かりませんが、matplotlibでインタラクティブなプロットをする機会があったので、 メモ代わりにサンプルコードを作ってみました。 Event handling…

matplotlibでcolormapを逆にする方法

matplotlibでは多数のカラーマップが用意されています。 Choosing Colormaps in Matplotlib — Matplotlib 3.1.0 documentation データに手を加えずカラーマップを逆にしてプロットするのは、<span style="color: #d32f2f">カラーマップを指定する引数 cmap に与えるカラーマップ名の後ろに</span>…

Matplotlibで主成分分析の寄与率・累積寄与率を左右2軸プロット

多変量解析の一般的な手法である主成分分析を使っていると、寄与率と累積寄与率を確認することが多いです。 それぞれを別にプロットしてもよいのですが、 1つのプロットで確認できたほうが便利だと思い、matplotlibで実装してみました。 一つのプロットで左…

Numpyで多変量正規分布を算出&プロット

numpy では、N次元の正規分布を出力するnumpy.random.normal() がありますが、こちらでは共分散を設定できません。 共分散を指定する場合、N次元の多変量正規分布を 出力できる、numpy.random.multivariate_normal () を使う必要があります。 numpy.random.m…

逆関数法で一様分布・指数分布と算出(Python実装)

ゲームやCGの実装をしていると,「いい感じに偏った乱数が欲しい」と思うことが多々あります*1。 よく知られている方法として、rand関数などで算出した一様乱数を元に逆関数法で乱数を作ることができます。 ただ、数式の意味が分かりにくいところもあります。…

matplotlib: 各ラベルごとに色分けされた散布図をプロット

プロット ラベリングされた2次元のデータを、各ラベルごとに色を分けてプロットします。 今回はCSV/TSVを想定したトイデータとして、各サンプルごとにラベル文字列が入ったデータを扱っています。numpy.uniqueを使うことで、ラベル文字列のリストを生成して…

PyAudio で作るリアルタイム音高アナライザ

デモ・概要 前回のリアルタイムスペクトルアナライザ を応用して、リアルタイムで音高を表示するプログラムをPyAudioとmatplotlib を使って作ってみました。 www.wizard-notes.com デモ・概要 実装 main.py AudioInputStream: PC上の音の取得 SpectrumAnalyz…

Python + PyAudio で作る、リアルタイムスペクトルアナライザ(ループバック録音対応)

デモ+概要 Python のPyAudio と matplotlib を使って、PC上で流れている音をリアルタイムで表示・分析できるスペクトルアナライザを作りました。以下の実装では VB-Audio社の仮想ミキサ "Voice Meeter" 向けの設定となっていますが、PortAudio 対応かつルー…

matplotlibのウィンドウを透明化してプロット

やりたいこと matplotlib の背景を透明化してプロットしたいと思います。 savefig() による図の保存の場合は、こちらの例のように ax.patch.set_alpha(float) を使うことで実現できます。 以下の実装では、plt.show() でディスプレイ表示する場合の透明度設…

matplotlibでタイムラインチャートをプロット

やりたいこと 時系列信号・データを扱っていると、その信号に対する各種イベント・ラベル(例:どんな音が鳴っているか)を時間とともに表示したいと思うことが多々あります。 そこで、Pythonの matplotlib で時間波形に対するイベント(ラベル)のタイムラ…

matplotlib: 棒グラフでハッチパターンを使う

やりたいこと 論文など、白黒印刷が想定される紙媒体や、色の見え方の個人差に考慮したメディアでの棒グラフの作り方として、ハッチパターンを使ったものがよく使われています。 今回は、matplotlib でハッチパターンの棒グラフを描画してみます。 解決方法 …

adjustText: matplotlib の散布図でラベルの重なりを自動調整

問題点 matplotlib の散布図などのプロットの際に、各点にラベルを付けてプロットしたい場合、下の図のようにラベルが重なってしまうため、ラベル付きプロットを諦めることが多々ありました。 図1: 散布図 (Before) 解決方法 ラベルの配置を制御する方法を探…