2009-04-15 8 views
1

私は新しいターミナルウィンドウを開くたびに私の外部IPアドレスを収集し、それを現時点でテキストファイルに追加する小さなスクリプトを書いています。私はIPアドレスがいつ/どのくらい頻繁に変化するかを視覚化するためのアイデアを探しています。私は自宅とキャンパスの間を跳ね返り、スクリプトを使ってそれらを分けることができますが、それらを別々に視覚化するとよいでしょう。IPアドレスがPythonで変更されるとどのように視覚化するのですか?

私はよくmatplotlibを使用します。何か案は?

答えて

4

あなたのIPをthe xkcd internet map(または地図の一部を拡大表示して、異なるが近くにあるIPをよりよく見せるために)の点としてプロットします。

IPをどのくらいの頻度で積み上げているかに比例して各ポイントをプロットし、より最近のポイントを明るくするためにIPを色付けします。

+0

これがいくつかの異なるIPアドレスセットで可能かどうか疑問に思っていました。私が町の周りを歩くダイナミクスIPのさまざまなセットのための異なるプロットを持ってください。 – physicsmichael

0

matplotlibユーザーガイドには、範囲を表すためにグラフの棒を描画するセクションがあります。私は自分でそれをやったことはありませんが、あなたが探しているものには適しているようです。

0

あなたがターミナルを指定したと仮定すると、私はあなたがUNIXのバリアントシステムにいると仮定します。 -fスイッチをコマンドラインユーティリティの末尾とともに使用すると、ファイルの終わりを常に監視できます。また、ほとんどのディストリビューションに標準で付属しているファイルの変更を監視したり、そのファイルを独自のディレクトリに置いたりすることができるIBMのinotifyのようなものを使用することもできます(最後の行を取得するために-n 1を呼び出すことができます)。行が変更されたら、Pythonのtime.time()を使ってエポックから現在のシステム時刻を取得し、最後の変更時刻からそれを減算し、matplotlibを使ってこの差をプロットすることができます。私はあなたが時間を の範囲に分類して、自分でグラフを簡単にすることができると考えています。 1バーは1時間未満の変更間隔で、もう1つは1〜5時間の間の変更などです。

直接使用したくない場合は、hereにあるtail -fのPython実装があります。ファイルの変更が検出されると、上記を実行できます。

1

「時」は1次元の時間的データであり、タイムラインによってよく示されている。より大きなタイムスケールでは、おそらく細部を失うでしょうが、ほとんどの "いつ"のプロットにこの欠陥があります。

「頻度」では、時間と頻度の標準的な2d(棒グラフ)のプロットを、毎日/毎週/毎月のバケットに分割して標準的な方法になります。移動平均は情報的なものであってもよい。

タイムラインを&バープロットと組み合わせて、タイムラインをズームしたときに表示することができます。&ズームアウト時に周波数が表示されます。

各バーの幅は、コンピュータが特定のIPアドレスを保持している時間の長さで、各バーの高さは幅に反比例します。それはまた、どのくらいの頻度でプロットするかのプロットを与えるでしょう。

SuperAudio CDのように、データをpulse density modulated信号と解釈することもできます。これをグラフ化したり、データを聞くことさえできます。 IP変更イベントには明らかな時間の長さがないので、パルスの長さは調整可能なパラメータになります。同様の線に沿って、データを方形波(三角波、のこぎり波&c)として見ることができます。ここで、各IP変化イベントはレベル遷移です。楽しみのように聞こえるPure Dataプロジェクト。

関連する問題