Lettere visuelle data i nettleseren med variasjonskart

I dag skal vi dykke i Variance Charts; en unik JavaScript-basert "grammatikk av grafikk" som gir en abstrakt, declarative markup stil for å lage det som ellers ville være ganske komplekse diagrammer. Variantdiagrammer sitter et sted mellom D3.js og HighCharts, som gir fleksibilitet mens du beholder en tilnærbar syntax.

Bruke Variant Charts stoler ikke på dypere kunnskap om JavaScript. La oss ta en titt!

Komme til biblioteket

Variance gir en ikke-kommersiell versjon, hostet gjennom sin egen CDN, som du bør inkludere på siden din slik:

Du vil inkludere en style.css fil også. Vi vil ikke gå gjennom prosessen med å forklare det grunnleggende oppsettet for HTML-filen, da de fleste av disse detaljene er enkle.

Vår første diagram

Variansen kan lese både JSON og CSV; Vi vil lage et enkelt strekdiagram ved hjelp av følgende uoffisielle CSV-data om bacon popularitet:

 år, bacons 1990,20 1995,231 2000,639 2005,1625 2010,7000 2015,16000 

Som vi kan se fra disse verdiparene, blir bacon eksponentielt mer og mer populært. For eksempel, paret 1990,20 viser at bacon var 20 populær (uansett hva det betyr) i 1990, men da ved 1995 popularitet hadde steget til 231.

Men egentlig, for å se dette visuelt, vil vi gjerne presentere det ved hjelp av et linjediagram. Her er et eksempel på hvordan vi skulle merke vårt diagram (vi går over de ulike elementene i et øyeblikk).

Bacon data

år

Vi vil også trenge noen medfølgende CSS for å angi størrelsen på diagrammet. For å gjøre dette vil vi pakke inn alle våre oppslag i en 

 og legg til følgende stiler til en style.css fil:

.beholder bredde: 50%; margin: 60px auto;  .container chart width: 100%; høyde: 400 piksler; 

Legg merke til noen ting her:

  • Kartoppslaget ser mye ut som HTML. Faktisk er det gyldig XML som Variance bruker til å bygge vårt bardiagram. Vi brukte også denne egendefinerte merkingen for å pakke inn CSV-dataene. Vi refererer til CSV element i diagram stikkord.
  • skala-y-lineær forteller oss hva skalaen av y-retningen skal være. I vårt tilfelle går vårt datasett til 16000, men starter så lavt som 20. For å dekke rekkevidden, setter vi vår nedre ende på 0, og vår topp på 20000.
  • guide-x / guide-y lager en tick-mark guide på de respektive aksene.
  •  looper over våre data og lager elementer basert på hvert datapunkt.
  • merknad er en etikett som kan plasseres rundt et bestemt element, for eksempel a Bar. Curly braces lar deg vise et stykke data; i vårt tilfelle, år er i vår CSV, så vi kan enkelt utføre år.
  • Bar lager et barelement, og map-lengdedefinerer bredden på linjen  bacons kart til CSV.

Flott! Nå hvordan gjør vi det mindre styggt?

Styling diagrammet

For å utforme diagrammet, stiler vi ganske enkelt som vi ville normale elementer i CSS. Stangelementene i diagrammet er blokknivå normale DOM-elementer og er plassert ved hjelp av flexbox. Vi vil legge til noen stiler til vårt CSS, som da skal se slik ut.

kropp farge: # 3f130c; høyde: 100%; font-family: uten seriffer; bakgrunnsbilde: url (... /bg.jpg); Bakgrunnen-størrelse: deksel; Bakgrunnen-stilling: center; background-repeat: no-repeat; Bakgrunnen-vedlegg: fast;  h1, h2, h3, h4 font-family: Tauri, sans-serif;  .container width: 50%; stilling: i forhold; bakgrunnsbilde: url (... /bg-blur.jpg); Bakgrunnen-størrelse: deksel; Bakgrunnen-stilling: center; background-repeat: no-repeat; Bakgrunnen-vedlegg: fast; margin: 100px auto; padding: 100 piksler;  .bacon-diagram posisjon: relativ; z-index: 999;  .bacon-diagram h3 margin: 0 0 1em;  .container: etter bakgrunnsfarge: rgba (255,255,255,0,4); stilling: absolutt; topp: 0; venstre: 0; bredde: 100%; høyde: 100%; innhold:"";  .container chart width: 100%; høyde: 400 piksler;  .bacon-chart bar bakgrunnsfarge: rgba (96,28,18,0,7); border: none; 

Merk: Vi har lagt til en Google-skrift i indeksfilen over vår style.css-kobling:

Vi har tatt med en liten bonus her: "Sløret vindu" -effekten kan sees opp mellom beholderen og kroppsdelene. Vi benytter et annet bakgrunnsbilde for å oppnå dette.

Nå har vi et mer nyttig diagram. Men det blir mye, mye bedre.

Animasjon og verktøytips

Tid for noen blomstrer, begynner med noen verktøytips på stolpene. For å sparke ting, legger vi til en ny kommentar for hver linje, slik at vårt kartoppslag ser slik ut:

    år bacons   

Etter det vil vi legge til noen nye stiler til vårt CSS som vil tillate noen interessante hovereffekter og enkle overganger for verktøytipset:

.bacon-kartlinje bakgrunnsfarge: rgba (96,28,18,0,7); border: none; margin: 0 viktig;  dato overflow: hidden;  .tooltip width: auto; height: auto; background-color: # 444; farge: #fff; opacity: 0; venstre: -100%; font-size: .6em; -webkit-overgang: alle .4s; -moz-overgang: alle .4s; -ms-overgang: alle .4s; -o-overgang: alle .4s; overgang: alle .4s; padding: 6 piksler;  dato: hover bakgrunnsfarge: rgba (255,255,255,0,1);  dato: hover .tooltip display: block; opacity: 1; venstre: 0; 

animasjon

Til slutt vil vi animere våre barer i. Vi oppnår dette med en keyframe-animasjon:

@ -webkit - keyframes barsIn 0% bunn: -100%;  100% bunn: 0; 

Som vil vi da søke på barelementet vårt:

.bacon - kartlinje bakgrunn - farge: rgba (96, 28, 18, 0,7); margin: 0! viktig; grense: ingen; høyde: 0; - webkit - animasjon: barer i 1s; 

Dette kan også oppnås ved å bruke noe lignende-webkit-transform: skala (1, 0), men vi ønsket å holde det så enkelt som mulig. Du bør også sørge for at du legger til de riktige prefiksene etter behov.

Mer om variasjon

Varianse gjør en god jobb med å forklare mer komplekse eksempler, og gir også en god indeks for dokumentasjon. Du vil oppdage at Variance er i stand til langt mer komplekse visualiseringer. Vi berører kort om noen av hovedpoengene her.

Varians benytter navn på forskjellige kjerneelementer i et diagram for å gjøre det enklere å bygge diagrammer, inkludert punkt,punktumområdeBarboxplot, og linje. Hver av disse har sine egne determinerbare innganger. Disse kan alle brukes i kombinasjon med hverandre, og kan opprettes på iterativ måte med gjenta blokkere.

Varians kan også bruke koblede data, som tillater API-drevne visualiseringer som har dynamisk oppdatert informasjon.

Konklusjon

I dag har du lært hvordan du oppretter et helt deklarativt, animert, stilert diagram ved hjelp av variasjonskart. I et forsøk på å komme i gang raskt, har vi slått ut mye av funksjonaliteten tilgjengelig i Variance, så sørg for å sjekke det ut for deg selv!

Bacon bilde av jeffreyww på Flickr, redigert. Creative Commons 2.0