, het gebruik van d3.js bouw - diagram: 2,,,,,,,,,,,,, 16 aandelen,,,,,,, het netwerk van delen van maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' dit artikel niet missen, is een reeks genaamd "het gebruik van d3.js.building - kaart D3 - lijn de bouw van een deel van de kaart is, in deze serie. Het eerste deel, zien we hoe we begonnen met het creëren van meer dan d3.js javascript lijnen op de kaart.In deze handleiding, brengen we het naar een nieuw niveau van de verschillende lijnen op de kaart van de gegevens toe te voegen, zullen we wat meer taken als de vooruitgang, te beginnen met de training. En laten we beginnen door klonen, het eerste deel van de opleiding van github.,, git kloon https://github. COM /jay3dec /multilinechart_d3. Idioot, vaart op de , multilinechart_d3, bladeren, index. Http: //europa.eu.int, je moet een grafiek, op basis van de gegevens van een gebied en dynamische, op vorige handleiding, creëren we de architectuur van het toepassingsgebied en de yscale,,, op het gebied van De kleinste, we hard code, en de grootste gebied.Laten we de kaart flexibeler worden en we moeten lezen van de minimale en maximale waarden als bron van gegevens in een gebied, die d3.js dynamische.,,, d3.min, d3.max, uit een reeks voor respectievelijk de minimale en maximale waarden.Ik maken van deze taken to get het minimum en maximale waarden voor het domein. We kunnen krijgen, en de minimale waarde van een installatie als shown:,, d3.min (data, functie (d) {terug d.value;}), ook om te krijgen, in de maximale:,, d3.max (data, functie (D) {}), de terugkeer d.value; alleen de minimale en maximale, ter vervanging van die waarden in de , xScale, domein als shown: ,, xScale = d3.scale.linear ().Range ([MARGINS.left, om de breedte - MARGINS.right]).Domain ([d3.min (data, functie (d) {terug d.year;}), d3.max (data, function (d) {terug d.year;})]), en ook de yScale. De,,,,, domain:, yScale = d3.scale.linear ().Range ([HEIGHT - MARGINS.top, MARGINS.bottom]).Domain ([d3.min (data, functie (d) {terug d.sale;}, d3.max (DA)Ta, functionele (d) {terug d.sale;})]), en, bij al die veranderingen: //europa.eu.int /comm /index, en rond.Nu moet je een kaart van eerder werk, want het is.Het enige verschil is, het op gebied van de maximale en minimale, dynamische, het creëren van een lijn, voor een dynamische, het bewaren van monsters hola object kan gemakkelijker een analyse van de gegevens en de kaart getrokken.So combine the two pieces of sample data into a single JSON data string as shown below: ,,var data = [{ "Client": "ABC", "sale": "202", "year": "2000" }, { "Client": "ABC", "sale": "215", "year": "2002" }, { "Client": "ABC", "sale": "179", "year": "2004" }, { "Client": "ABC", "sale": "199", "year": "2006" }, { "Client": "ABC", "sale": "134", "year": "2008" }, { "Client": "ABC", "sale": "176", "year": "2010" }, { "Client": "XYZ", "sale": "100", "year": "2000" }, { "Client": "XYZ", "sale": "215", "year": "2002" }, { "Client": "XYZ", "sale": "179", "year": "2004" }, { "Client": "XYZ", "saLe ":" 199 "," jaar ":" 2006 "} {" klanten ":" en "," verkopen ":" 134 "," jaar ":" 2008 "} {" klanten ":" en "," verkopen ":" 176 "," jaar ":" 2013 ")];,, moeten we nu de wijziging van de code, zodat onze kaarten op basis van gegevens en van de waarde van het dynamische. , dan zullen we verdeeld zijn, op basis van de gegevens van de organisatie, de klant, dus we kunnen voor elke klant die lijn, en op basis van de gegevens.D3 van een methode, d3.nest, die bijdragen aan de regelingen op basis van bepaalde gegevens op het gebied van de sleutel.We'll use ,d3.nest, to sort out the data based on ,Client, as shown:,,var dataGroup = d3.nest() .key(function(d) { return d.Client; }) .entries(data);,,Here is how the ,dataGroup, would look: ,,[{ "key": "ABC", "values": [{ "Client": "ABC", "sale": "202", "year": "2000" }, { "Client": "ABC", "sale": "215", "year": "2002" }, { "Client": "ABC", "sale": "179", "year": "2004" }, { "Client": "ABC", "sale": "199", "year": "2006" }, { "Client": "ABC", "sale": "134", "year": "2008" }, { "Client": "ABC", "sale": "176", "year": "2010" }] }, { "key": "XYZ", "values": [{ "Client": "XYZ", "sale": "100", "year": "2000" }, { "Client": "XYZ", "sale": "215", "year": "2002" }, { "Client": "XYZ", "sale": "179", "year": "2004" }, { "Client": "XYZ", "sale": "199", "year": "2006" }, { "Client": "XYZ", "sale": "134", "year": "2008" }, { "Client": "XYZ", "sale": "176", "year": "2013" }] }],,Next, remove the ,svg, line path code for line creation that we hard-coded previously.,,vis.append('svg:path') .attr('d', lineGen(data)) .attr('stroke', 'green') .attr('strDe breedte van.Attr (2) de Raad, met betrekking tot de "," geen "); zichtbaar. Aanvullende ('svg: weg.Attr (") zal, linegen (2)).Attr ('stroke ", de" blauwe ").Attr ('stroke-width",.Attr (2) met betrekking tot de "," geen "), terwijl we; zal lopen, en het creëren van een voor elke cliënt, lijnen op de kaart, zoals blijkt uit de cijfers:,, set. Voor (functie (d i) {zichtbaar. De aanvullende ('svg: weg.Attr (") zal, linegen (d.values)).Attr ('stroke "," blauw ").Attr ((2).Attr'stroke-width", de "," geen ");});,, wijzigingen en proberen te kijken: //europa.eu.int /comm /index.Je moet kunnen zien dat veel lijnen zoals aangegeven: ,,,,, laten we nog een willekeurige kleur lijnen.Met het oog op de toevoeging van willekeurige kleur, we gebruiken d3.hsl methode.Wijziging van de lijn, beroerte eigenschappen zoals hieronder aangegeven voor de lijn krijgen willekeurige kleur.,,. Voor (functie (d i) {zichtbaar. De aanvullende ('svg: weg.Attr (") zal, linegen (d.values)).Attr ('stroke" functies (D, J) {terugkeer "HSL (" + wiskunde. (*) 360 + 100%, 50%);} ").Attr ('stroke-width",.Attr (2) met betrekking tot de "," geen ");});,, wijzigingen en rond: //europa.eu.int /comm /index.Moet je zien willekeurige kleur, de lijn op de kaart.,,,,, bij de legende, de volgende stap, we voegen, zoals de legende van, de klanten, de in de steekproef.Ooit van de legende is toegevoegd, zullen we een legende zal leiden tot de desbetreffende in de grafieken blijkt dat klikt.,, de eerste, voor de toevoeging van de legende, hebben we behoefte aan een herziening van de winstmarge op de rand van de bodem, , , 50, ondergebracht, legende. Zichtbaar, var = D3 kan kiezen ("#. Als"), met een breedte van een hoogte van 500, 1000, winst = {: 50, rechts: 20, op de bodem van de linker: 50: 50,},, en het iteratieve, set, en we zullen de desbetreffende lijn toe te voegen aan De legende.De toevoeging van de legende is heel eenvoudig.In de eerste plaats, de definitie van de klant of de lijnen op de kaart zullen we op basis van het aantal tekeningen legende ruimte lspace = breedte:,,,, /set. Lengte; met de X - en Y - coördinaten van de svg elementen toe te voegen en een herhaling van de tekst, die Na de productie, zoals:,, extra (VI. "De tekst").Attr (de "X", (lspace /2) + ik lspace).Attr ("y" stijl, hoogte). ("gevuld", de "zwarte"). De tekst (d.key);,, we passen afstand (lspace legende, moeten wij blijk geven van onze ,) op basis van de legendarische nummer, dus alle verhalen hebben elkaar de neutraliteit.We hebben 2 minuten om de legende van het centrum in de ruimtelijke ordening en het naar voren, toen we nog (, ik lspace, komende legende, het behoud van alle veranderingen, en proberen te kijken, /index.html, moet je de legende,,,,, de X - as. Laten we nog wat. De Legende maakt ze kijk brutaal.Voeg de volgende CSS:,,, /index.html,.Legend {lettergrootte: 14; worden vet;}, de klasse, toevoegen, ook de piano, de legende, en vis.append ("de tekst").Attr ("X", (lSpace /2) + I * * * * * * * lSpace).Attr ("y", hoogte).Style ("stop", de "zwarte").Attr ("klasse", "legende").Text (d.key);,,,,,, nu, laten D3.js gebeurtenissen, aan de gebeurtenissen op elk van de legends als schakel tussen de displayed aan die van de desbetreffende lijn op de multi-line graph.,, de eerste, dan. Nog een, id, voor elke lijn als schakel tussen de display gecreëerd in om te.Attr (ID ',,,,,'line_'+d.key) hier is, hoe de lijn creation code, ik, vis.append ('svg:path').Attr ("een", lineGen (d.values, xScale, yScale)).Attr ('stroke', functie (D, J) {re"De HSL (" + wiskunde. (*) 360 + 100%, 50%);} ").Attr ('stroke-width", 2).Attr ('id "," line_ + d.key).Attr (de "," geen "); de volgende in de legende van de,,, creatieve deel toe te voegen, klik eigenschappen:,, (klik geluiden gehoord, functie) (signalering (d.key);}), wijzigingen en rond: //europa.eu.int /comm /index.Een legende, en moet je zien als een legendarische naam herinneren. ,, laten we de code toe te voegen aan te tonen - lijn.We moeten alleen een herziening van de huidige staat van grafieken en dat de transparantie - niet aan te tonen en verbergen de lijnen van de.,,, (klik geluiden gehoord, functie () {VAR actieve = d.active?De echte transparantie; geen valse: = actief?1 - 0; D3. ("# line_" + d.key). ("doorzichtigheid" stijl, geen transparantie); d.active = actief;}), wijzigingen en proberen te kijken: //europa.eu.int /comm /index.Probeer een legende en de bijbehorende grafiek blijkt, moeten overschakelen. De conclusies in deze handleiding, zien we hoe we onze meerdere lijnen op de kaart.Ik zag ook hoe d3.js gebeurtenissen te creëren.In alle andere d3.js methoden gedetailleerde informatie in de officiële documenten en de API - en kijken.,, van deze handleiding in de source code kan github.,, laten we in de volgende opmerkingen weten wat je denkt.,
De oprichting van een multi -
Next Page:Het canvas