Grafici dinamicamente alimentati usando DataWrapper

Chi di voi conosce il servizio DataWrapper?

I grafici sono semplici da creare e personalizzare. da qualche tempo non si può più inserirli nel proprio sito (embeddarli) lasciando sui server di DW il vostro lavoro. Potete però scaricare l’intero codice zippato e fare l’upload su un vostro server.
Fin qui nulla di speciale. Il punto però purtroppo è che i dati che DW gestisce sono statici.
Se cioè scaricate/create ad esempio un dataset come questo e poi il contenuto cambia, il vostro grafico ovviamente non si aggiornerà.

Se osservate però il codice zippato che avete scaricato, vedrete che viene caricato il file data.csv che contiene il contenuto che avete uploadato sul server di DW per la creazione guidata del grafico.

Quindi ho pensato ad un piccolo codice Php che scarica realtime il file remoto csv che avete creato/aggiornato e lo salva come data.csv. quindi il grafico sarà aggiornato realtime.
Fate cosi

1) andate su https://datawrapper.de/ e createvi il grafico che volete facendo upload del vostro csv
2) scaricate da DW il codice zippato che poi inserite sul vostro server. Attenzione il codice è statico (index.html). Rinominate index.html in index.php. Si presuppone che il vostro server abbia il servizio PHP configurato ed attivo (per esempio avete un wordpress in linea e potete accedere in ftp per fare gli upload? allora va bene )
3) incollate all’inizio del file index.php (apritelo in modifica con blocco note,note ++, atom ect insomma un editor di testo):

< ?php $url='link remoto del vostro file csv'; $file = "data.csv"; $src = fopen($url, 'r'); $dest = fopen($file, 'w'); stream_copy_to_stream($src, $dest); ?>

poi inizia il codice html del vecchio file index.html quindi < !DOCTYPE html > ect

4) accertatevi che data.csv sia scrivibile (777 ect)

il gioco è fatto.

Esempio? cliccate l’immagine qui sotto

Schermata 2015-09-05 alle 16.33.01

Potrebbero interessarti anche...

3 Risposte

  1. nico ha detto:

    Ho visto questo howto dopo aver letto anche quello su come creare un bot telegram da un rss.
    Non sono un programmatore ma cerco di esporre il mio caso
    1) ho dei dati pubblici, aggiornati giornalmente, che scarico in csv https://www.arpa.piemonte.it/approfondimenti/temi-ambientali/aria/aria/semaforo-qualita-dellaria-pm10
    2) ho creato per qualche giorno un grafico con datawrapper https://datawrapper.dwcdn.net/mzynG/4/
    3) vorrei non fare tutto giorno per giorno ma automatizzarlo
    4) magari diffonderlo con un bot, pensavo che datawrapper mi fornisse un rss o qualcosa di simile invece no
    Secondo te posso combinare i due tutorial con la pagina php del grafico?
    Complimenti per il lavoro divulgativo

    p.s. salutami Matera (città natale) e Lecce (città frequentata nella giovinezza, soprattutto il via del mare)

    • piersoft ha detto:

      il discorso è lungo. si può creare un automa che ogni sera esporti il csv, lo pulisca e lo renda un rss. ma se sei programmatore puoi anche fare un bot, in questo caso, che esporti al volo la tabella e la mostri su Telegram . non c’è bisogno per forza di un rss. Lato datawrapper, analogamente, si può creare un automa che ogni notte ti crei i il csv che dai in pasto ai grafici. il sito gestisce i cookies e va in https. non è semplicissimo. quando un po’ di tempo vedo se si può fare qualcosa

  2. nico ha detto:

    Quello che proponi è fuori dalla mia portata. A meno che non ci sia qualche tool facile che faccia scraping in automatico

Rispondi