発展編③:matplotlibでSlack分布をグラフ化する

Parser

〜数値から直感的な可視化へ〜

📝 はじめに

前回はpandasを使ってSlackワースト10を抽出し、
「どのパスがクリティカルか」を自動でリスト化しました。

ただし、数が多くなると「全体の傾向」が分かりにくくなります。
そこで今回は、matplotlibを使ってSlack分布をグラフ化し、
数百〜数千パスを一目で理解できる可視化に挑戦します。


📦 matplotlibとは?

matplotlibは、Pythonの標準的な描画ライブラリです。

  • 折れ線グラフ、棒グラフ、散布図、ヒストグラムなど多彩に対応
  • pandasと組み合わせるとデータ解析に強力

インストールしていない場合は以下を実行してください。

pip install matplotlib

✍️ サンプルコード

前回までに作成したpandas DataFrame(df)を使います。
Slack列の値をヒストグラムにしてみましょう。

import matplotlib.pyplot as plt
import pandas as pd

#Timing Reportから作成したDataFrameを仮定
#df = pd.DataFrame([…])

#Slack列をヒストグラム化

plt.hist(df["slack"], bins=20, edgecolor="black")

plt.title("Slack Distribution")
plt.xlabel("Slack (ns)")
plt.ylabel("Count of Paths")

plt.grid(True, linestyle="--", alpha=0.7)

#画像保存

plt.savefig("slack_histogram.png")
plt.show()

▶️ 実行結果イメージ

  • 横軸:Slack値(ns)
  • 縦軸:パスの本数
  • 左に寄っていれば「余裕が小さいパスが多い」ことが分かる

(WordPressでは slack_histogram.png を記事に貼り付けると分かりやすいです)


🔍 応用例

  1. クリティカルパスを赤線で強調
plt.axvline(0.0, color="red", linestyle="--", label="Slack=0 (Critical)")
plt.legend()
  1. Startpointごとに色分けした散布図
plt.scatter(range(len(df)), df["slack"])
plt.axhline(0.0, color="red", linestyle="--")
plt.title("Slack per Path")
plt.xlabel("Path Index")
plt.ylabel("Slack (ns)")

✅ まとめ

  • matplotlibを使えばSlack分布を視覚化できる
  • 数百〜数千パスでも一目で傾向が分かる
  • タイミング違反(Slack < 0)の有無を直感的に確認可能
Parser
スポンサーリンク
この記事を書いた人

運営者について

当サイトは、個人が運営する学習・記録ブログです。

AI・データサイエンス・自動化を中心に、
Python、G検定・DS検定の学習内容や、
実際に試しながら整理した知識をまとめています。

特定の企業や団体に属さない個人サイトとして、
学習過程で得た気づきや判断の整理を目的に運営しています。

「知識はあるが、どう使えばよいか分からない」
「情報が多く、判断に迷ってしまう」
といった状態を減らすことを目的に発信しています。

専門家として教える立場ではなく、
自分自身がつまずき、試し、整理してきた過程をそのまま共有するスタイルです。

用語の暗記やテクニックの紹介よりも、
・なぜそう考えるのか
・どの順番で判断するのか
・どこで迷いやすいのか
といった思考の整理を重視しています。

学び場をフォローする
学び場をフォローする
タイトルとURLをコピーしました