Data er rundt oss, og visualiseringen er allerede blitt en viktig del av våre liv. Diagrammer, infographics, kart og oversikter er i stor etterspørsel i dag fordi de presenterer informasjon til oss på en måte som lett kan tolkes.

Det gode er at kartleggingen ikke krever gode ferdigheter eller spesiell kunnskap fra webutviklere, designere eller noen andre. I denne artikkelen vil vi enkelt vise grunnleggende og forklare hvordan du håndterer interaktiv datavisualisering ved hjelp av JavaScript og HTML5.

Vi skal begynne med å lage et enkeltboksdiagram slik at du kan forstå det grunnleggende. Deretter viser vi deg en rask måte å lage multi-serie og stablede strekdiagrammer. Bardiagrammer er en populær måte å presentere data i disse dager, og utviklingslogikken som brukes kan lett oversettes til andre typer grafer.

Det endelige diagrammet vil være dette 100% stablede strekdiagrammet:

Se pennen Endelig (tittel). Tilpasset 100% stablet strekdiagram av Ruslan ( @ruslankorsar ) på CodePen .

I dag er det mange JavaScript kartleggingsbiblioteker ; Noen av dem er helt gratis, for eksempel D3 og Google-diagrammer mens andre krever betalinger for kommersiell bruk. Etter min mening er de mest omfattende og robuste av dem amCharts , AnyChart , og Highcharts .

For denne opplæringen har jeg bestemt meg for å bruke AnyChart . Men prosessen er veldig lik for hvert bibliotek, spesielt hvis du gjør noe enkelt. AnyChart har omfattende dokumentasjon og API referanse så vel som et stort utvalg av støttede karttyper og demoer på kode lekeplass , så det er et godt valg for nybegynnere.

For enkelhets skyld er alle eksemplene som er avbildet i opplæringen tilgjengelige i denne samlingen på CodePen og kan utforskes der eller eksporteres til ZIP-filer med CSS / HTML / JavaScript demo filer.

JS Charting i 3 enkle trinn

Prosessen med å lage en grunnleggende JavaScript-graf for ditt nettsted eller app består av følgende tre trinn:

  1. Lag dine data
  2. Koble biblioteket;
  3. Skriv en enkel kode.

1. Forberedelse av data

Akkurat som et flott skip ønsker dypt vann, vil en enkel graf ha enkle data. Selvfølgelig, hvis du har store mengder data eller strukturen ikke er åpenbar, må du forberede det først.

Når du bygger de fleste populære diagramtyper, trenger vi bare X- og Y-felt. Linjediagrammer kan imidlertid være enda enklere fordi det ofte skjer at bare Y-feltet brukes, og en indeks eller et varenummer blir tatt som X. Det er tilfelle når vi bruker et JavaScript-utvalg av data, for eksempel:

    // 5 data points = 5 categories for a single seriesvar data = [19, 24, 30, 34, 42];// Y is these values; X is item numbers [0,1,2,3,4,5]

Hvis du bruker JSON / XML til å overføre data, kan dataene dine se slik ut.

    [{'x': 'Product A','value': 19},{'x': 'Product B','value': 24}...]

Generelt sett er det mange måter å jobbe med data på, og visualiseringsprogramvareutviklere beskriver vanligvis alle eller mange av dem i docs. Med det i tankene anbefaler jeg at du sjekker relevant seksjon av kartleggingsbibliotekets dokumentasjon.

2. Få et kartleggingsbibliotek

Biblioteket du bruker er åpenbart en viktig ingrediens her. Hvis du skal bruke diagrammer lokalt, bør det være rimelig å nedlasting den binære pakken og hold den i nærheten.

Men hvis du trenger grafikk for en webapp eller en side på et nettsted, så a CDN kan være et bedre alternativ. Det vil laste filene fra nærmeste server til klienten, noe som gir deg raskere sidelast og bedre ytelse.

3. Skrive en enkel HTML / JavaScript-kode

Når våre data og biblioteket er klare, kan vi begynne å skrive koden for å faktisk tegne diagrammet vårt.

a) Først må vi lage en kartbeholder på siden. Den beste måten er å bruke en

element og sett sin ID:

    

b) Etter det, la oss inkludere våre data:

var data = [{x: 'DVD player', y: 19},{x: 'Home theater system', y: 24},{x: 'Karaoke player', y: 30},{x: 'Projector', y: 34},{x: 'TV receiver', y: 42}];

c) Deretter angir vi hvilken type diagram vi ønsker ved å ringe til den aktuelle konstruktørfunksjonen:

    var chart = anychart.bar();

d) For å gjøre ting klarere for seerne, vil jeg gi diagrammet en tittel:

    chart.title('Product Sales');

e) La oss nå lage en serie:

    chart.addSeries(data);// or we can specify a simple dataset within the method:chart.addSeries([19, 24, 30, 34, 42]);

f) Vårt kart må legges i en beholder, så vi spesifiserer den vi nettopp har laget:

    chart.container('container');

g) Alt virker bra, så vi kan tegne vårt diagram nå:

    chart.draw();

Slik ser resultatet ut:

1-singel-serie-bar-chart

Følgende er hele koden for din bekvemmelighet:

Ser ganske grei ut, ikke sant? Og nå kan vi enkelt sammenligne det totale salget etter kategori.

Opprette flere serier og stablet bardiagrammer

Nå som vi har lært grunnleggende om kartlegging med JavaScript, kan vi fortsette å bygge en litt mer komplisert graf som viser mer informasjon. Som jeg sa tidligere, vil jeg vise deg en enkel måte å lage et multi-serie bar diagram og deretter en stablet en.

I utgangspunktet er prosedyrene ganske like. Som alltid starter alt med data.

Data fra en tabell

I sammenheng med linjediagrammet ovenfor hadde vi en variabel (produktsalgsdata-serien) og flere kategorier (produkttyper). For å i tillegg vise sammensetningen av hver verdi, som er essensen av stablede strekdiagrammer, trenger vi mer detaljerte data.

For dette kan vi bruke data som allerede er vist på siden. For eksempel, hvis du allerede har et HTML-tabell, kan du enkelt bygge en graf basert på den. Hvis du bruker AnyCharts Data Adapter-modul alt du trenger er å spesifisere den tabellen som datakilde.

1) Få dataadapteren:

    

2) Lag data fra bordet:

    var tableData = anychart.data.parseHtmlTable('#tableWithData');

3) Lag et diagram og spesifiser datakilden:

    var chart = anychart.bar();chart.data(tableData);

Det umiddelbare resultatet er et fler-serie bardiagram som tillater oss for eksempel å raskt sammenligne hvert produkts ytelse innen hver enkelt kategori.

2-multi-serie-bar-chart

Endre type serien

Alle nødvendige detaljer, inkludert data, er allerede angitt. Nå kan vi endre serietypen og få et stablet stangdiagram ut av den konvensjonelle multi-serien en. Det er ikke vanskelig i det hele tatt, siden du trenger bare en linje med kode for å ha verdiene stablet:

    chart.yScale().stackMode('values');

Voila!

3-stablet-bar-chart

Vi har nettopp opprettet et stablet strekdi i fly uten å endre konfigurasjonen av den multi-serie en. Som et resultat er vi ikke bare klar nå å sammenligne totalt salg fordelt på kategori som med enkelt-seriens linjediagram fra begynnelsen av artikkelen, men vi kan også identifisere hvilket produkt som er ansvarlig for å lage en kategori totalt mindre eller større enn andre .

Siden vi på forhånd enige om at vårt endelige mål er et 100% stablet strekdi, la oss bare endre modusen for å få det:

    chart.yScale().stackMode('percent');
4-prosent-stablede søylediagram

Det er et 100% stablet linjediagram, som gjør at du kan markere del-til-hele-relasjoner og vurdere bidraget til hvert produkt til kategorien totalt.

Designtilpasning

Design er svært viktig i datavisualisering, for å tiltrekke oppmerksomhet, øke klarheten og opprettholde visuell integritet i ditt webprosjekt. Hjertelig med dette kartleggingsbiblioteket er tilpasning ganske enkelt.

Legge til tekst

For klarhet, kan du gi din visualisering med tilleggstekster. For eksempel gir jeg den vertikale aksen en tittel og legger til et diagrammerke midlertidig:

    chart.xAxis().title('Products');chart.label({text: 'Classified!'});
5-prosent-stablet-bar-chart-med-tekst

Fargeinnstillinger

Du kan legge til farger gjennom en palett ( chart.palette () ) og endre bakgrunnsinnstillingene ( chart.background () ) blant annet. Eller du kan bruke et tema:

    

Da må vi spesifisere det i kartinnstillingene:

    anychart.theme(anychart.themes.wines);
6

Kartinteraktivitet

Å lage et JavaScript-diagram minst en liten interaktiv er ikke en stor avtale.

Sannsynligvis består den mest grunnleggende tilnærmingen i å aktivere svingerstaten på datapunkter, for å få dem til å endre farge og eller legge til eller endre markører. Valgstatusen bestemmer hvordan hvert punkt ser etter at du har klikket.

Noen enkle svever og velg basert interaktivitet er inkludert som standard så nå skal vi ikke legge til noe i eksemplet ovenfor. Vennligst kom tilbake til det for å utforske den grunnleggende interaktiviteten, hvis du vil.

Det er verdt å snakke om verktøytipselementet, som kan flyte når et punkt er svevet over. Jeg prøver alltid å gjøre bruk av verktøytips ved å få dem til å vise noen nyttige opplysninger om hvilken serie et punkt tilhører, hvilken verdi den representerer, og så videre. Du kan enkelt justere verktøytipsene dine for å vise noe. Vi presenterer verktøytipset og angir hva som skal vises i det:

    var tooltip = chart.tooltip();tooltip.displayMode('union');tooltip.textFormatter('{%SeriesName}: {%Value} ({%YPercentOfCategory}%)');

Her er resultatet:

7

Dette er bare et kort blikk på tilpasningsalternativene, for å gå i detalj ville være en hel artikkel av seg selv. For nå foreslår jeg at du leser interaktivitetsseksjon i dokumentasjonen for mer informasjon.

Konklusjon

Som du ser, er det ikke vanskelig å bygge interaktive diagrammer med JavaScript. Videre kan du finne alle eksemplene fra opplæringen i min samling på CodePen og bruk dem enkelt i arbeidet ditt. Bare kopier koden, endre dataene dine til din, og få prosjektet oppe og kjører veldig fort.

Husk alltid å sjekke dokumentasjonen og / eller API-referansen, samt ta hensyn til demoene til biblioteket du bruker, for eksempel dette AnyCharts galleri . Vanligvis er det ikke komplisert å se om det er noe nær det du trenger, finn et eksempel som passer best, gjør noen enkle endringer, og bruk det på den måten du trenger.