D3 in JSON V. Batagelj JSON JSONske storitve JSON in Python JSON in R JSON, D3.js in prikazi omreˇ zij Prikazovalnik Viri Prikazi omreˇ zij z D3.js in JSON Vladimir Batagelj IMFM Ljubljana in IAM UP Koper PON raˇ cunalniˇ ski seminar Koper, 18. januar 2016 V. Batagelj D3 in JSON
32
Embed
Prikazi omre ij z D3.js in JSONvladowiki.fmf.uni-lj.si/lib/exe/fetch.php?media=vis:pdf:upracsem.pdfJSON, D3.js in prikazi omre zij Prikazovalnik Viri JSON, D3.js in prikazi omre zij
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
D3 in JSON
V. Batagelj
JSON
JSONskestoritve
JSON inPython
JSON in R
JSON, D3.jsin prikaziomrezij
Prikazovalnik
Viri
Prikazi omrezij z D3.js in JSON
Vladimir Batagelj
IMFM Ljubljana in IAM UP Koper
PON racunalniski seminarKoper, 18. januar 2016
V. Batagelj D3 in JSON
D3 in JSON
V. Batagelj
JSON
JSONskestoritve
JSON inPython
JSON in R
JSON, D3.jsin prikaziomrezij
Prikazovalnik
Viri
Kazalo
1 JSON2 JSONske storitve3 JSON in Python4 JSON in R5 JSON, D3.js in prikazi omrezij6 Prikazovalnik7 Viri
Stvari sem se lotil, ker v Pythonu nisemnasel dobre knjiznice za prikaz omrezij.Knjiznica matplotlib, ki jo uporablja Ne-tworkX, je usmerjena v prikaze stati-sticnih podatkov.Obstaja pa izvrstna knjiznica D3.js za pri-kaze podatkov na spletu v obliki SVG.Vecina podatkov je za prikaz pripravljenav obliki JSON. Obstaja vec zgledov upo-rabe pri prikazih grafov in omrezij.
Zamisel je naslednja
omrezje → JSON → SVG → { PDF, PNG, EPS }
z orodji: Python, pregledovalnik (JS) in Inkscape.
• cilj 1: ponuditi uporabnikom JSONsko obliko zapisa, kiomogoca razmeroma preprosto izmenjavo omreznihpodatkov med razlicnimi programi. Razviti programskoopremo za pripravo in vzdrzevanje omreznih podatkov.
• cilj 2: ponuditi obliko zapisa, ki omogoca tudi opiseprikazov omrezij.
• cilj 3: ponuditi uporabnikom (programerjem postopkovanalize omrezij) enostaven, a obenem zmogljiv prikazniizhod z moznostjo prikaza na spletu in tiskani obliki. NadD3.js razviti zbirko razlicnih prikazov omrezij (krozni,koordinatni, matricni, vzmetni, itd.), ki delujejo nadustvarjenimi opisi.
V. Batagelj D3 in JSON
D3 in JSON
V. Batagelj
JSON
JSONskestoritve
JSON inPython
JSON in R
JSON, D3.jsin prikaziomrezij
Prikazovalnik
Viri
JSON
JSON (JavaScript Object Notation) je oblika zapisa (format)podatkov na znakovni datoteki, ki ohranja zgradbo podatkov.
Zacetno razlicico oblike JSON je razvil Douglas Crockford (okrog2002). Naslonil se je na zapis podatkov v programskem jezikuJavascript. Osnovna zamisel je bila: ce uporabimo nad nizom znakovz opisom podatkov Javascriptovo funkcijo eval, dobimo ustreznipodatkovni objekt. JSON je jezikovno neodvisen, odprtokodnistandard za izmenjavo podatkov med programi.
Za JSON obstajata dva standarda:
• The JSON Data Interchange Format. Standard ECMA-404,oktober 2013.
• The JavaScript Object Notation (JSON) Data InterchangeFormat Request for Comments: 7159, marec 2014.
XML je ustreznejsi za opis zgradbe besedil, JSON prevzema mestopri opisu zgradbe podatkov. JSON ima enostavnejso slovnico, jepreglednejsi in usklajen s podatkovnimi strukturami v sodobnihprogramskih jezikih (seznami in slovarji).
Vsi kljuci (imena) so v dvojnih narekovajih.
Datoteke JSON temeljijo na kodi Unicode (privzeto UTF-8).
Zvrst MIME za datoteke JSON je application/json, priporocenipodaljsek pa .json.
Za uporabo datotek JSON obstaja programska podpora za vecinopomembnejsih programskih jezikov http://www.json.org/.
<html><head><title>JSON: eval in parse</title></head><body><script>var data=’["abc",{"a":[true, null,3.14],"b":"BBBBB","c":12e+5}]’alert("JSON: " + data);document.write("JSON:<tt>"+data+"</tt><br>");var value = eval(’(’ + data + ’)’);console.log("eval:"); console.log(value);document.write("eval:<tt>"+JSON.stringify(value)+"</tt><br>");var json = JSON.parse(data);console.log("JSON.parse:"); console.log(json);</script></body></html>
eval.html. Za izvedbo programa sem uporabil pregledovalnik GoogleChrome. Do konzole pridemo z izbiroCustomize and Control GC / More tools / Developer tools
Preverjanje dobre oblikovanosti (well formed): opis podatkovzadosca slovnici.
JSONlint - se eno preverjanje
Urejevalnik za JSON
JSONske sheme – pravilna podatkovja v JSONu. Podobno kotpri XML z datoteko DTD ali shemo tudi za JSON lahkoopisemo zgradbo sestavin opisa. Github, validation, JSONSchema Lint, JSON Schema validator.
Pred kratkim je Julian McAuley z UCSD ponudil na spletuobsezno zbirko podatkov Amazon product data. Podatkovjevsebuje mnenja in metapodatke o izdelkih z Amazona – 143.7milijonov mnenj iz obdobja maj 1996 – julij 2014.
Podatki so opisani v obliki JSON in nato poZIPani. Vspremljajocih navodilih so podani primeri, kako se obdelavepodatkov lotimo v Pythonu.
.attr("xmlns", "http://www.w3.org/2000/svg");// angle and radius for layout assistancevar ang = 2 * Math.PI / graph.nodes.length;var rad = width / 2.5;
V. Batagelj D3 in JSON
D3 in JSON
V. Batagelj
JSON
JSONskestoritve
JSON inPython
JSON in R
JSON, D3.jsin prikaziomrezij
Prikazovalnik
Viri
. . . Krozni prikaz
// create the linksvar link = svg.selectAll("line")
.attr("y2",function(d){return(rad*Math.sin(d.target*ang)+.5*width);});// create the nodes and set out in a circular layoutvar node = svg.selectAll("circle")
Anthony Bargnesi, Anselmo DiFabio, William Hayes: JSON Graph.GitHub
Vladimir Batagelj: Complex Networks, Visualization of. R.A. Meyers,ed., Encyclopedia of Complexity and Systems Science, Springer 2009:1253-1268.
Vladimir Batagelj, Andrej Mrvar: Pajek manual.
Jernej Bodlaj: Network Data File Formats. in Reda Alhajj, Jon Rokne(eds.): Encyclopedia of Social Network Analysis and Mining. Springer,New York, 2014, p. 1076-1091.
Richard Brath, David Jonker: Graph Analysis and Visualization:Discovering Business Opportunity in Linked Data. John Wiley & Sons,Indianapolis, Indiana, 2015.
Emden Gansner, Eleftherios Koutsofios, Stephen North: Drawinggraphs with dot, January 26, 2006
Michael Himsolt: GML: A portable Graph File Format. report
Wouter De Nooy, Andrej Mrvar, Vladimir Batagelj: Exploratory SocialNetwork Analysis with Pajek; Revised and Expanded Second Edition.Structural Analysis in the Social Sciences, Cambridge UniversityPress, September 2011.
Matthew Roughan, Jonathan Tuke: Unravelling Graph-Exchange FileFormats. arXiv:1503.02781, submitted on 10 Mar 2015.
Wikipedia: JSON
Leland Wilkinson: The Grammar of Graphics. Springer-Verlag, NewYork, 2005.