Domanda

Ho scritto un piccolo script che raccoglie il mio indirizzo IP esterno ogni volta che apro una nuova finestra di terminale e lo aggiunge, a oltre il tempo corrente, in un file di testo. Sto cercando idee su un modo per visualizzare quando / come spesso i miei indirizzo IP cambia. Rimbalzo tra casa e campus e potuto separarli utilizzando lo script, ma sarebbe bello per visualizzarli separatamente.

Mi capita spesso di uso matplotlib. Tutte le idee?

È stato utile?

Soluzione

Tracciare il tuo IP come un punto su internet mappa xkcd (o qualche ingrandito nel sottoinsieme della mappa , per mostrare meglio indirizzi IP diversi ma strettamente limitrofe).

Trama ogni punto "impilati" proporzionale a quante volte hai avuto quel IP, e colorare gli IP per ottenere i punti più recenti brillanti, i punti meno recenti in proporzione più scuro.

Altri suggerimenti

"Quando" è indicatori temporali dimensionale, che è ben illustrato da una linea temporale. In tempi più grandi, si sarebbe probabilmente perdere i dettagli, ma la maggior parte qualsiasi trama di "quando" avrebbe questo difetto.

Per "Quante volte", una trama 2D standard (bar) del tempo vs frequenza, suddivise in secchi per ogni giorno / settimana / mese, sarebbe un modo standard per andare. Una media mobile potrebbe anche essere informativo.

È possibile combinare la trama temporale e bar, con la timeline visibile quando si è ingrandito in & display frequenza quando lo zoom out.

Come su un grafico a barre con il tempo sull'asse orizzontale in cui la larghezza di ciascuna barra è la lunghezza del tempo il computer ha tenuto un particolare indirizzo IP e l'altezza di ogni barra è inversamente proporzionale alla larghezza? Che sarebbe anche dare un appezzamento di quando vs quanto spesso trama.

Si potrebbe anche interpretare i dati come una densità segnale modulato di impulso, come quello si ottiene su un CD SuperAudio. Si potrebbe rappresentare graficamente questo o anche ascoltare i dati. Poiché non c'è lunghezza di tempo ovvia per un evento cambiamento IP, la lunghezza di un impulso sarebbe un parametro impostabile. Lungo linee simili, è possibile visualizzare i dati come un'onda quadra (onda triangolare, a dente di sega e c), in cui ogni evento change IP è una transizione di livello. Suona come un divertimento Pure progetto di Data .

C'è una sezione nel manuale d'uso matplotlib su lotteria barre su un grafico per rappresentare gamme. Non ho mai fatto anch'io ma mi sembra adeguato per quello che stai cercando.

Supponendo specificato terminale, darò per scontato sei su un sistema di variante di UNIX. Utilizzando l'opzione -f insieme con l'utilità della riga di comando di coda può consentire di monitorare costantemente la fine di un file. Si potrebbe anche usare qualcosa come inotify , che può controllare file viene modificato o dnotify (e posizionare il file in essa la propria directory) che di solito viene fornito di serie sulla maggior parte delle distribuzioni (si può quindi chiamare tail -n 1 per ottenere l'ultima riga). Una volta che i cambiamenti di linea, si può afferrare l'ora corrente del sistema in quanto all'epoca usando time.time di Python () e sottrarre dal momento dell'ultima modifica, quindi tracciare questa differenza usando matplotlib. Suppongo si potrebbe catalogare i tempi in intervalli di rendere la grafica più facile su te stesso. 1 Bar per intervalli di meno di 1 ora di modifica, un altro per le modifiche tra 1 -. 5 ore, e così via

C'è un'implementazione di Python di tail -f situato qui se non lo fai desidera utilizzare direttamente. Al rilevamento di un cambiamento nel file, è possibile eseguire quanto sopra.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top