Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

45
Visualizzare cose con i dati Alessio Cimarelli @jenkin27 www.dataninja.it #SOD14 - Bologna, 30 marzo 2014

description

"Visualizzare cose con i dati" - Mini corso sulla data visualization nell'ambito del secondo raduno nazionale di Spaghetti Open Data insieme a Density Design: le basi della grafica web data-driven, grafici base con Datawrapper, reti con Gephi, mappe con CartoDB e Google Fusion Tables, grafici interattivi con D3js.

Transcript of Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Page 1: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

VisualizzarecoseconidatiAlessio Cimarelli@jenkin27

www.dataninja.it

#SOD14-Bologna,30marzo2014

Page 2: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Dati

Sonoentitàmisurabiliconunsignificatorelativoalcontestoincuisipresentanoovengonoraccontate.

Percomprenderliemanipolarliènecessariorappresentarli!

Numeriecollezionidinumeri,unitàdimisura,relazioni...equindilogicaformale,matematica,statistica...

Page 3: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Immagini

Aristotele,Metafisica,Incipit(IVsecoloa.C.)

Tuttigliuominitendonopernaturaalsapere.Losegnalailloroamoreperlesensazioni,amatepersestesse,

indipendentementedall'utilità,preferitatratuttelavista,nonsoloinvista

dell'azione,maanchesenzaintenzionepratica.Ilmotivoèche,mostrandolamolteplicitàdelledifferenze,lavistafaacquisirepiùdellealtresensazioni

[nuove]conoscenze.

Page 4: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

GraficaegeometriaSpessoredelbordoColoredelbordoColoredelriempimentoTrasparenzaPosizionedelcentroLunghezzadelraggio(lunghezzadegliassi)(angolodirotazione)

Ognielementograficoèunivocamentedefinitodauncertonumerodiparametri

Page 5: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Visualizzareidati

Datiinunamano,immagininell'altra

Datirappresentatidanumeri,parametrigraficimisuraticonnumeri

Lachiavestanelconnettereopportunamenteidatiaiparametrideglielementidavisualizzare

Page 6: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Data-DrivenDocuments

HTML&SVG+

CSS+

Javascript

Generareemanipolarepaginewebinbaseaundataset,definendolaconnessionetradatie

attributideglielementiXML

Page 7: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Graficibase

Page 8: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

GraficodidispersioneÈilpiùsempliceperevidenziareunadipendenzatraduevariabili(correlazione).Almenounadevepossedereun

ordinamentointrinseco.

Idatisonolegatiallecoordinate(x,y)deipunti.

Page 9: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Graficodidispersione

Page 10: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

GraficoalineeIlpiùusatopermostraregliandamentineltempo.Utile

quandosisaqualevariabileèdipendenteequaleindipendente(ordineintrinseco).

Ugualealgraficoadispersione,maipuntisonocollegatidalineeenonsipossonoscambiaregliassi.

Page 11: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Graficoalinee

Getthedata...

Page 12: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

IstogrammaQuandosivoglionoconfrontareivaloridiunavariabileche

nonhannounarelazionereciprocatraloro(variabileindipendentenonordinata)èpreferibileutilizzareunistogrammapiuttostocheungraficoapuntioalinee.

Idatisonolegatiall'altezzadellebarre.

Page 13: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

GraficoabarreorizzontaliQuestavarianteèmoltoutilesesihannomolteetichettelunghedamostrare.Siadattaanchemeglioallosviluppo

verticaledellepagineweb.

Idatisonolegatiallalunghezzadellebarre.

Page 14: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Graficoabarre

OpenSpendingBologna2012...

Page 15: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

TorteeciambelleDausaresolopermostraredatichesommatiinsieme

rappresentanountotale(epresisingolarmenterappresentanotuttelepartideltotale).

Idatisonolegatiall'angolodeisettoricircolari.Ilraggiononconta!

Page 16: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Torteeciambelle

Page 17: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

LatabellaContienetuttiidatiedèmoltocompatta.Eventualiformattazionidellecellepossonoaiutarelalettura.

Page 18: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

DatawrapperDatawrapperisanon-commercial,opensourcesoftware,

licensedunder .theMITLicense

DatawrapperwasdevelopedforABZV,ajournalismtrainingorganizationaffiliatedtoBDVZ(GermanAssociationof

NewspaperPublishers).

Page 19: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

LeretiUnavisualizzazioneareteèadattaperevidenziarerapporti

reciproci(relazioni)traoggetti.

Sononecessaridueingredienti:

inodi,individuatidaunidunicoecaratterizzatidavariparametri;icollegamenti,individuatidaunacoppiaordinatadinodiecaratterizzatialorovoltadavariparametri.

Page 20: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Lereti

Gephi...

Page 21: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

LemappeLarappresentazionedidatigeograficiavvieneintre

modalitàdifferenti:

Punti-Luoghigeograficiconspecifichecoordinate(latitudineelongitudine)Linee-Seriedipunticollegati(strade,percorsi,…)Perimetri-Poligonichedefinisconodeterminatearee(quartieri,comuni,province,regioni,nazioni,…)

Page 22: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Iluoghi

SimormoratraibeneinformatichelaTerranonsiapiatta...maviviamocomunqueinduedimensioni!

Duedimensioni->Duecoordinate

Peridentificareunivocamenteunpuntosuunasuperficiecivoglionoduenumeri:latitudineelongitudine.

Esempio: ?dovesiamoinquestomomento44°29'47.2"N|11°20'45.1"E

Page 23: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Lechoropleth

Quandoidatisiriferisconoaterritoriestesi(province,regioni,nazioni),quindiadellesuperfici,sipossono

codificareneicoloridiriempimento.

Datonumerico->Scalacromatica

Ilmagicomondodeicolori:http://colorschemedesigner.com/http://colorbrewer2.org/

Page 24: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Unesempio:leslotmachineNel2013loStatoItaliano,attraversol'AAMS,haautorizzato

684esercizicommercialiainstallareslotmachineevideolotteries.

Getthedata...

LeslotaBologna

LaconcentrazionedelleslotinItalia

Page 25: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

GoogleFusionTables'namezzaciofeca...

Veroverissimo,maèsemplice,gratuitoegeocodificasenzagrandilimiti(purchélecoordinatesiusinosolosulleGoogle

Maps).

LeslotaBologna

Page 26: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

CartoDBCartoDBisacloudbasedmapping,analysisand

visualizationenginethatletsusersbuildspatialapplicationsforbothmobileandtheweb.

LaconcentrazionedelleslotinItalia

Page 27: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

D3.jsD3.jsisaJavaScriptlibraryfor

manipulatingdocumentsbasedondata.D3helpsyoubringdatatolifeusing

HTML,SVGandCSS.D3’semphasisonwebstandardsgivesyouthefull

capabilitiesofmodernbrowserswithouttyingyourselftoaproprietaryframework,

combiningpowerfulvisualizationcomponentsandadata-drivenapproach

toDOMmanipulation.

Page 28: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

DalPh.D.alNewYorkTimes

,insiemealProf.JeffHeereaVadimOgievetsky,unaltrostudente,pubblicala

libreriaProtoVispervisualizzazioniinterattiveduranteilsuocorsodidottorato(2009).

MikeBostocks

Nel2011itrereimplementanotuttoenasceD3:propostainun ,èarrivataoggialla ,da

sempreopen-source.papersuunIEEE versione3.4.4

Dall'ambienteaccademico,Mikeentranegliufficidellagrandeeditoriainternazionale.

Page 29: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

SelezionareeassociareIlselettorisonoquelliCSS,elementieattributisonoquelli

HTMLeSVGcosìcomedefinitidalW3C.

d3.selectAll("p").style("font-size","12px");

d3.selectAll("p").style("font-size",function(){return(Math.random()*12)+"px";});

d3.selectAll("p").data([4,8,12,16,24,36]).style("font-size",function(d){returnd+"px";});

Page 30: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Creare,aggiornare,distruggereIlcuoredellalibreriastanellacapacitàdiassociareinostridati(tipicamentearray)aelementidelDOMpermettendodiaccedereaquellimodificati,aquellinonancoraesistenti,a

quellinonpiùutili.

varp=d3.select("body").selectAll("p").data([4,8,12,16,24,36]).enter().append("p").style("font-size",function(d){returnd+"px";}).text(function(d){return"Sonogrande"+d+"px";});

p.data([36,24,16,12,8,4]).style("font-size",function(d){returnd+"px";});

p.data([16,12,8]).exit().remove();

Page 31: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

AssociazioneperchiaveIlmetododata()associaidatiaglielementidelDOM.Può

farloperindice,maancheperchiave.

varsizes=[{id:"a",size:12},{id:"b",size:16},{id:"c",size:24}];

varp=d3.select("body").selectAll("p").data(sizes).enter().append("p").style("font-size",function(d){returnd.size+"px";}).text(function(d){return"Sono"+d.id+"esonogrande"+d.size+"px";});

Page 32: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Associazioneperchiave(2)Ilmetododata()associaidatiaglielementidelDOM.Può

farloperindice,maancheperchiave.varnewSizes=[{id:"b",size:6},//era{id:"a",size:6},{id:"c",size:8},//era{id:"b",size:8},{id:"d",size:12}//era{id:"c",size:12}];p.data(newSizes,function(d){returnd.id;}).style("font-size",function(d){returnd.size+"px";}).text(function(d){return"Sonosempre"+d.id+",maorasonogrande"+d.size+"px";});p.enter().append("p").style("font-size",function(d){returnd.size+"px";}).text(function(d){return"Sono"+d.id+"esonogrande"+d.size+"px";});p.exit().remove();

Page 33: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

NullaèistantaneoLalibreriaèingradodiinterpolareivaloridellamaggior

partedegliattributinumericidefinitinell'HTMLesoprattuttonell'SVG.

varp=d3.select("body").selectAll("p").data([4,8,12,16,24,36]).enter().append("p").style("font-size","0px").text(function(d){return"Sonogrande"+d+"px";});

p.transition().duration(750).delay(function(d,i){returni*10;}).style("font-size",function(d){returnd+"px";});

Page 34: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

IlmondoèfattoascaleNonbastaassociareunaseriedidatiaspecificielementidel

DOMemodificarnedirettamentegliattributi.

Ildominiodeinostridatipotrebbenonesseredirettamentecompatibileconl'intervalloincuisonodefinitiivaloridegli

attributi.

Hobisognodifunzionidiscala

Page 35: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Ilmondoèfattoascale(2)Idatipossonoaveredominicontinui(numerireali)odiscreti

(categorie).

GliattributideglielementiHTMLoSVGsonosemprediscreti(pixel!)ehannounintervallolimitato(risoluzione

delloschermo,codiciesadecimali,ecc.).

Neancheadirlo,D3hamoltimetodiperdefiniretrasformazioniopportunedeidati,siachesitrattididominicontinui(scalelineari,apotenza,logaritmiche,quantizzate,

temporali)odidominidiscreti.

Page 36: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Metodidibase

UnavoltaselezionatiglielementidelDOM,lalibreriaoffremetodipercrearli/distruggerli,riordinarli,modificare/

animareiloroattributi,associarvieventi,applicarvifunzioni.

Tuttoruotaattornoad3.selectAll([selettore]).

Eilchainingfornisceun'interfacciasempliceepulita!

Page 37: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Metodidibase(2)

D3nonèunalibreriaperlamanipolazionedidataset,maincludeunaseriecompletadimetodiutilipergestiree

manipolaregliarray.

Hatuttociòcheserveperrecuperaredatidasorgentiremote:XMLHttpRequestrulez!

Èingradodieffettuareilparsingdeipiùcomuniformatiperloscambiodidati:csv,tsvevolendo*sv(oltrealjsone

formatibasatisudiesso,ovviamente).

Page 38: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Metodidibase(3)L'accoppiataHTML5+CSS3ègraficamentemoltopotente,manonpuòessereversatilequantoun'applicazioneXML

dedicataallagraficavettoriale.

D3nasceconilpienosupportoallespecifichedell'SVGeconmoltimetodiperlagenerazioneelamanipolazionedioggetticomelinee,archi,curvediBézier,simboli,ecc.

Page 39: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

LayoutsIlcuoredellalibreriaagisceaunlivellomoltobasso:dati,

elementi,attributi.

Macisonovisualizzazionicherichiedonospecifichemanipolazionideidatiecalcoliperladeterminazionedell'aspettograficodeivarielementi(torte,barre

raggruppate,grafi,alberi,clustering,gerarchie,ecc.).

Lacomponented3.layouts()hametodicheimplementanonumerosialgoritmiutili.

Page 40: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Geo

Dallaversione3.0lapartedimanipolazionedidatigeograficisièsviluppataenormemente.

Ilmetodod3.geo()permettedilavorareconleproiezioni,visualizzareemanipolareelementiespressiincoordinategeografiche,applicaretrasformazioniallegeometrie.

Page 41: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Plugins

Comeognilibreriajavascriptchesirispetti,ancheD3puòesserearricchitadaplugindedicati.

Quelliufficialisonositrovanonelrepository.https://github.com/d3/d3-plugins

Page 42: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

BasatosuD3Lalibreriaharaggiuntountalesuccessocheormaiesistono

moltiprogettiD3-based.

-Grandidatasetedashboardcomposite-Graficiriutilizzabili-Frameworkpercostruiregraficiriutilizzabili-Toolkitgraficoperjavascript-Datavizin3dimensioni!-Graficiinterattiviin4passi

-Vizcomplesseperdesigner-MioportingsuframeworkEnyo.js(appena

cominciato...)

DC.jsNVD3.jsd3.chartRickshawD3+Three.jsDatawrapperRawd3js4enyo

Page 43: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Bastano~2000esempi?

http://christopheviau.com/d3list/gallery.html

Senzadimenticareil ela ...sitoufficiale documentazione

Page 44: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

RAWThemissinglinkbetweenspreadsheetsandvectorgraphics.

Page 45: Data Visualization Lab - #SOD14 - Bologna - 30 marzo 2014

Grazie#SOD!AlessioCimarelli

@jenkin27

www.dataninja.itNewsletter

http://newsletter.dataninja.it/lists/

Q&Ahttp://www.dataninja.it/qa/