, het gebruik van gas in de Python visualisatie van toepassing is, d3.js en Google in de BigQuery: 3,,,,,,,,,, 143, 16 aandelen,,,,,,,, de delen van het netwerk, maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' niet missen, een deel van de prijs van een reeks gegevens voor het gebruik van gas dat de Python visuele aanvraag, d3.js en Google BigQuery. Het gebruik van gas Python weergave van de gegevens van toepassing, d3.js en Google BigQuery: een deel van de gegevens van aanvragen voor het gebruik van gas visualisatie Python, d3.js en Google in deel 4, onder BigQuery: voor een deel van de training, zien we hoe d3.js begon, en voor het creëren van een dynamische schaal en de as met gegevens van ons beeld.In dit deel van de handleiding, we zullen het gebruik van grafische gegevens te klonen,.,, de vorige les in de source code github. , git kloon, https://github. COM /jay3dec /pythond3jsmashup_part2. Idioot, navigatie op Google app motor (gas) SDK catalogus en de server,.,. /dev_appserver.py pythond3jsmashup_part2 /, zal de browser op HTTP://lokale: 8080 /displaychart moet je naar de X - en Y - as, We in de handleiding voor het in de beginnen.,,, het creëren van een nieuw model, displaychart_3. Http: //europa.eu.int die zal hetzelfde zijn, displaychart. Html.En de toevoeging van , displaychart_3 route.: //europa.eu.int /comm /,.Dit was voor het behoud van de vorige les intact, want ik zal het in dezelfde categorie displaychart3 URL 's.,, (webapp2. De behandelaar): - haal (zelf): template_data = {} template_path = "model /displaychart_3." - reactie, schrijven (model. (template_path. Overdreven. De toepassing van template_data)) = webapp2. Wsgiapplication ([(/figuur, showchartpage), ("/displaychart", displaychart), ("/displaychart3", displaychart3), ("/", showhome)], de inbedrijfstelling te = waar), en het creëren van visuele (en van de steekproef van gegevens), onze gegevens, we hebben een aantal , tellen, worden opgesteld in een groep van de desbetreffende gegevens in,,, var = [("graaf": "202", "jaar": "1590} {'""count": "215", "year": "1592" }, { "count": "179", "year": "1593" }, { "count": "199", "year": "1594" }, { "count": "134", "year": "1595" }, { "count": "176", "year": "1596" }, { "count": "172", "year": "1597" }, { "count": "161", "year": "1598" }, { "count": "199", "year": "1599" }, { "count": "181", "year": "1600" }, { "count": "157", "year": "1602" }, { "count": "179", "year": "1603" }, { "count": "150", "year": "1606" }, { "count": "187", "year": "1607" }, { "count": "133", "year": "1608" }, { "count": "190", "year": "1609" }, { "count": "175", "year": "1610" }, { "Graaf": "91", "jaar": "1611" {"graaf": "150", "jaar": "1612")], zullen wij ons in de kaart van de vertegenwoordigers van de visualisatie van alle gegevens.D3.js API - methode voor het creëren van verschillende vorm en grootte. ,, in de eerste plaats zullen wij gebruik maken van de keuze van de visuele elementen d3.selectall in de ring.Als er geen elementen gevonden, het is een lege vervanging kan na aanvullende kringen ., var. De wereld = zichtbaar. Alle ("cirkel"); daarna zullen wij, en met ons de keuze van de gegevens, kringen., var. De wereld = zichtbaar. Alle ("."). De gegevens (gegevens); dat, aangezien de bestaande ring gekozen leeg is, zullen we in de creëert een nieuwe cirkel, cirkels. '(). Aanvullende ("svg: ring"), is de volgende stap, zullen wij de definitie van de X, rond de afstand van het centrum van de ( van bepaalde eigenschappen, CX) en Y - as (CY), hun kleur, hun radius, enz, cx, CY,,, we gebruiken , architectuur, yscale, wederopbouw, in de ruimte en de gegevens in de regio' s en svg cirkel.Hier is hoe het zal code: zie, var. De Gemeenschap = zichtbaar. Alle ("cirkel"), gegevens (gegevens); de wereld. '(). De aanvullende ("svg: ring").Attr ("beroerte", de "zwarte") ///////reeks Ronde grens attr ("r". 10) /de straal. Attr ("cathay Pacific" functies (d) {///////jaar terug zal helpen de gegevens kunnen worden getrokken (d.year); ///////.Attr (svg ruimte}) "Jeugd" functies (D) {///////yscale gegevens het terug zal tellen (d.count); ///////ruimte kan worden getrokken (}). Stijl ("gevuld", het "rood") ///////reeks ronde kleur, wijzigingen en op de pagina' s van Je.Je moet de beelden zie hieronder:,,,,, wijziging van de Google BigQuery winning van relevante gegevens, in het eerste deel van de serie, als we de statistieken van de BigQuery, we hebben een 1000 woorden, woorden, de keuze van de. [openbare gegevens: monster. Shakespeare] beperken. 1000, en we hebben een gegevens bevat een lijst van alle woorden in alle die Shakespeare 's werk. dus moet visuele aanvraag blijkt dat een aantal nuttige informatie, en we zullen een herziening van onze vraag de keuze van een bepaald woord bedrag, bijvoorbeeld, Caesar, in Shakespeare' s werken in een ander jaar, Dus. BigQuery. Google en we hebben een scherm, zoals hieronder aangegeven: in onze ingelogd op Google BigQuery,,,,,, dan hebben we een interface, kunnen we eenEn de controle van onze vraag.We moeten kiezen voor een bepaalde periode een aantal die in alle werken van Shakespeare.,, dus we fundamentele vragen zal uitzien:,, selectie en (word_count) als wcount van openbare gegevens, corpus_date [: monster. Shakespeare woord = "Caesar" groep corpus_date volgorde, van de hierboven wcount, vraag gaf ons een resultaat, Zoals hieronder aangegeven:,,,,, kunnen we ook een groep van werk woorden tellen.Wijziging van de vraag blijkt dat het corpus, met inbegrip van: -, selectie - en (word_count) als wcount, corpus_date, group_concat (betreft) van [de gegevens van werk: het monster. Shakespeare woord = "Caesar" en corpus_date > 0 - groep door de wcount, corpus_date orde, waardoor de resultaten Als volgt:,,,,, de BigQuery, de volgende gegevens van Google,, open, app.py, en het creëren van een nieuwe klasse van genoemd, getchartdata,.We creëren waaronder de vraag, vraag = {,'query ": de som van de wcount'select (word_count), corpus_date, group_concat (betreft) als" [openbare gegevens: monster. Shakespeare 's] = "God" en het woord corpus_date > 0 - groep door de wcount ") corpus_date volgende, de totstandbrenging van een order, BigQuery diensten, voor de uitvoering van onze vraag,,,, tabel = bigquery_service. Banen (), de uitvoering van onderzoek, nu, de diensten en de resultaten van BigQuery, drukken op de pagina' s = Tabel Lijst.,, (projectid = = = = = = = project_number, Het lichaam onderzoeken). () zelf uitvoeren. De reactie van schrijven (gegevens uit.), met inbegrip van , getchartdata nieuwe routes, zoals afgebeeld in fig.,,, de toepassing van = webapp2. Wsgiapplication ([(/figuur, showchartpage), (" /displaychart, diSplaychart), ("/displaychart3", displaychart3), ("/getchartdata", getchartdata), ("/", showhome)], nee, echt, en ten slotte de actualisering) = code platform, gas, appcfg.py bijgewerkt.,. /pythond3jsmashup_part2 /, zal de browser op HTTP://yourappspoturl. COM /getchartdata blijk moeten geven van de volgende gegevens BigQuery.,,, we proberen het BigQuery van Google in de analytische gegevens ontvangen en omgezet in een object en hola gegevens worden doorgegeven aan de cliënt in het proces van het D3. Js.,, in de eerste plaats, we gaan kijken of er een lijst, en terug.Als we geen rijen, die de respons als nietig of zero.,'rows'in dataList:, als #: om dataList resp.append ({'count': 0, 0,'year':'corpus':'0'}), de volgende, dan om de,, dataList, van looping elke rij en picking. Graaf, jaar en corpus en het creëren van onze vereiste hola voorwerp.,, respectievelijk = [...] als'rows'in dataList: voor rij in dataList['rows']: voor de belangrijkste, dict_list in row.iteritems (): graaf = dict_list[0] jaar = = dict_list[2] dict_list[1] corpus resp.append ({'count': count['v'],'year': year['v'],'corpus': corpus['v']}): resp.append ({'count': 0, 0,'year':'corpus':'0'}), nee. We zijn de gegevens als returning parsed hola, hola, of de invoer van de bibliotheek, hola, de respon, en terug.Se reactie als een hola.,, zelf. Antwoord. Titel ['content-type "] =" application/json zelf. Antwoord. Schrijven (hola. Dump (resp.), laten we ook laten zoeken naar een dynamische, zodat het kan worden gebruikt als een parameter, input = zelf vereist.,. (de "input") vraag = {'query ": de som van de wcount'select (word_count), corpus_date, group_concat (betreft) als" [openbare gegevens: monster. Shakespeare het woord "input" + = + "en corpus_date > 0 - groep door de wcount"), corpus_date orde, hier is hoe het soort tot slot, getchartdata, zie:,, getchartdata (webapp2. De behandelaar): - haal (zelf): - = zelf. Het verzoek wordt ("input") vraag = {'query ": de som van de wcount'select (word_count), corpus_date, group_concat (betreft) met de FROm "[openbare gegevens: monster. Shakespeare het woord" = "input" corpus_date volgorde (+ + wcount "} = bigquery_service. Banen () = Tabel Lijst (projectid = project_number, door het lichaam = onderzoeken). () = [...] als het" Oké "in de lijst van gegevens: ['rows Als een van de belangrijkste en dict_list]: in de kolom. Iteritems (aantal): = dict_list [0] [1] jaar = dict_list corpus dict_list [2] of een extra ({Tel: [V] tellen,'year": [V] in [V],'corpus: corpus}) of andere Aanvullende ({Tel: ":" 0 ','year:'0','corpus ":" 0 "}) zelf. Antwoord. Titel ['content-type"] = "application/json zelf. Antwoord. Schrijven (hola. Dump (begrip), vernieuwing van AP),P - voor gas en je browser op HTTP://yourappspoturl. COM /getchartdata kan je terug op de zien hola.,,,,,, is de volgende stap, creëren we een interface - gegevens vragen BigQuery in ons programma dynamisch.Open het model /displaychart_3.html, en met een doos, we het sleutelwoord om te vragen naar de gegevens die aanpassing.,, < = "het centrum" > < id = "txtkeyword" = "tekst" = "span3" bijvoorbeeld = "..." > < /div > op de pagina 's,, met inbegrip van de DOM voorbereidende activiteiten dit script, zullen we vragen Python methode, getchartdata, , enter, volgens de,,, $(document). Voorbereiding (functie) ($("# txtkeyword"). Keyup (functie (gebeurtenissen) {als (in het geval van = = = = = = = 13) {///////displaychart als de inbreng ();}}); initchart (); ///////- kaart as});,, het creëren van een andere functie, displaychart, van de cliënt, daar zullen we Ajax noemen de Python.Getchartdata, de methode, de functie, displaychart () {var het sleutelwoord = $("# txtkeyword") ('); de dollar. Val. Ajax ((type: "ga"http: /getchartdata "gegevens: {wachtwoord}, input van gegevens: gegevens vormen:" hola "succes: Energie (reactie) {de console log (reactie);}, fout: functie (x uur, met uitzondering van de fouten van de console, log (fouten) {");}});}, bijwerking van de codes, geef je browser HTTP://yourappspoturl. COM /displaychart3. in een wachtwoord, satan, zei. En de pers, in.Controleer je browser Console, moet je terug op de hola.,, laten we met het antwoord terug van de communautaire industrie.Dus, het creëren van een andere functie createchart javascript,,.Deze functie is vergelijkbaar met de functie van de gegevens, initchart, maar zal als parameter.Hier is wat het lijkt, functie, createchart: (gegevens) {VAR vis = D3. ("# visuele"), met een breedte van een hoogte van 500, 1000, winst = {: 20, rechts: 20, op de bodem van 20, 50}: links:, = D3 te helpen. De omvang van de lineaire (). Bereik. ([margins.left, breedte rand. Rechts]). Gebied ([D3. Min (gegevens, functie (d) {terugkeer (parseint (d.year, 10 - 5);}), D3. Max (gegevens, functie (d) {terug parseint (d.year, 10);}).), yscale = D3. De omvang van een (.). Het bereik ([zeer margins.top winst. Bodem]). Gebied ([D3. Min (gegevens, functie (d) {terugkeer (parseint (d.count, 10 - 5);D3.max (}), gegevens, functie (d) {terug parseint (d.count, 10);})]), xAxis = d3.svg.axis ().Scale (xScale), yAxis = d3.svg.axis ().Scale (yScale).Orient ("links"); vis.append ("svg:g").Attr ('klasse'. "De X - as").Attr ("veranderen", "vertalen (0, + (hoogte - MARGINS.bottom) +") (").Call xAxis); vis.append (" svg:g ").Attr (", "y - klasse" ("").Attr veranderen "," vertalen ("(MARGINS.left) + + + + + + +" 0) ").Call (yAxis); var kringen = vis.selectAll (" cirkel ").Data (gegevens); circles.enter () voegt (" svg:circle ").Attr (" beroerte ", de" zwarte ").Attr (" R. "(10),.Attr "cathay Pacific" functie (d) {terugkeer van bestuur (d.year);.Attr (}) "Jeugd" functies (d) {terug yscale (d.count);}). Stijl ("gevuld", het "rood"), van initchart, functie, en verwijder de cirkel creëren deel omdat het nu niet nodig.Here is how ,InitChart, looks:,,function InitChart() { var data = [{ "count": "202", "year": "1590" }, { "count": "215", "year": "1592" }, { "count": "179", "year": "1593" }, { "count": "199", "year": "1594" }, { "count": "134", "year": "1595" }, { "count": "176", "year": "1596" }, { "count": "172", "year": "1597" }, { "count": "161", "year": "1598" }, { "count": "199", "year": "1599" }, { "count": "181", "year": "1600" }, { "count": "157", "year": "1602" }, { "count": "179", “年”:“1603”},{“计数”:“150”,“年”:“1606”},{“计数”:“187”,“年”:“1607”},{“计数”:“133”,“年”:“1608”},{“伯爵”:“190”,“年”:“1609”},{“计数”:“175”,“年”:“1610”},{“计数”:“91”,“年”:“1611”},{“计数”:“150”、“年”:“1612”} ];var颜色= D3。规模。category20();var可见= D3。选择(“#可视化”),宽度为1000,高度为500,利润率= {上:20,右:20,底部:20,左:50 },XScale = D3。规模。linear()范围([马。Rgins.left, breedte rand. Rechts]). Gebied ([D3. Min (gegevens, functie (d) {terugkeer (parseint (d.year, 10 - 5);}), D3. Max (gegevens, functie (d) {terug parseint (d.year, 10);})]), yscale = D3. De omvang van het toepassingsgebied ((). Op de hoogte. [margins.top winst. Bodem]). Gebied ([D3. Min (gegevens, functie (d) {terugkeer (parseint (d.count, 10 - 5);}), D3. Max (gegevens, functie (d) {terug parseint (d.count 10);})]), X = D3. Svg. As (). De omvang van de y - as = (bestuur), D3. Svg. As (). De omvang van het Oosten (yscale). ("links"); zichtbaar. Aanvullende ("SVG:G.Attr (" ")"En de" X ").Attr (" veranderen "," vertaling (0, + (hoge winsten. De bodem) + ")"). De telefoon (x); zichtbaar. Aanvullende ("SVG:G").Attr ("soort", de "y" eigendom). ("veranderen", "vertaling (" + (winst. Links) + ", 0) ("). Bel de y - as);}, vanaf nu, als we de lading, /displaychart3, pagina 's niet kan worden aangegeven, de wereld.Komt maar een keer trefwoord trefwoord zoeken.Dus, in de succes, displaychart terugbellen, Ajax noemen, door de , createchart, op de functie, de functie, het succes: (reactie) {console logboek (reactie); createchart (reactie);}, bijwerking van de codes, de aardolie, gas en zoek sleutelwoorden, Caesar.Oké, nu kunnen we de cirkel patroon zien.Maar er is een probleem: wat is as dekking krijgt.,,,,, om te voorkomen dat we binnen kijken, createchart, als de as is of niet. Hasaxis = zichtbaar, var. De selectie ("as") [0] [0]; als (!Hasaxis) {zichtbaar. De aanvullende ("SVG:G").Attr ("soort", de "X").Attr ("veranderen", "vertaling (0, + (hoge winsten. De bodem) +") "). De telefoon (x); zichtbaar. Aanvullende (" SVG:G.Attr ("") "en de" y ").Attr (" veranderen "," vertaling ("+ (winst. Links) +", 0) ("). Bel de y - as);}, zie je, we controleren gewoon als de svg elementen zijn as, en als we niet opnieuw gecreëerd.Bijwerking van de codes, gas en proberen het trefwoord, zie je deze dingen:,,,,, verpakking, maar ziet er goed uit, er zijn nog wat vragen, zullen we in de handleiding van een deel van een adres.We zullen ook de invoering van D3. Is omschakeling en enkele kenmerken van onze d3.js figuur, en proberen om het meer interactief.,, van deze handleiding in de source code kan github.,
Het gebruik van gas Python weergave van de gegevens van toepassing, d3.js en Google BigQuery: 3
Previous:Het gebruik van gas Python weergave van de gegevens van toepassing, d3.js en Google BigQuery: 4
Next Page:Nieuwe koers: te beginnen. Is