Sprucely title background

Tietomuoto

Jokainen Sprucely.io:n renderöimä kojelauta - luotiinpa se itsenäisen JavaScript-ajoympäristön avulla, itsenäisillä React-komponenteilla tai tallennettiinpa se tilillesi - käyttää samaa JSON-rakennetta: config-objektia kojelaudan yleistä tyyliä varten ja data-objektia, joka kuvaa widget-puun. Tämä ohje käy läpi kyseisen JSON-rakenteen kokonaisuudessaan sekä datasetin muodon, josta tiedot luetaan, ja kertoo, minkä kaaviotyypin tulisi valita tietylle sarakeyhdistelmälle. Upotusohjeet löydät kohdasta yksinkertainen kojelaudan upotus.

Kojelaudan JSON

Jokainen kojelauta on yksi JSON-objekti, jossa on kaksi ylimmän tason avainta: config, joka sisältää kojelaudan yleisen tyylin, ja data, joka on tyypitettyjen widget-solmujen puu alkaen yhdestä kojelaudan juurisolmusta. Jokaisella solmulla on type-kenttä, ja säiliötyypeillä lisäksi children-taulukko sisäkkäisistä solmuista.

  • dash - kojelaudan juurisolmu. Aina täsmälleen yksi, puun huipulla.
  • dash_stacker_hor / dash_stacker_ver - asettelee lapsielementtinsä riviin tai sarakkeeseen.
  • dash_chart - kaavio, jokin tuetuista kaaviotyypeistä (katso alta).
  • dash_table - datataulukko.
  • dash_text - tekstilohko.
  • dash_image - ladattu kuva.
  • dash_spacer - kiinteä tyhjä tila widgetien välissä.

Jokainen widget hyväksyy samat esitystä koskevat kentät riippumatta tyypistä:

  • size - widgetin koko sen säiliön pääakselin suunnassa: ‘Auto’, ‘<n>px’ tai ‘<n>%’.
  • padding - sisäinen tila, esimerkiksi ‘10px’ (paitsi dash_spacer).
  • backgroundColor - CSS-väri, esimerkiksi ‘#FFFFFF’ tai ‘transparent’.
  • borderRadius / borderWidth - kulman pyöristys ja reunan paksuus, esimerkiksi ‘10px’.
  • borderColor - reunan CSS-väri.
  • shadow - true tai false; lisää varjostuksen.

Kaaviowidgetit

Jokaisella kaaviolla on samat kentät; mitä kentistä x, y, d ja r käytetään ja minkä tyyppisen sarakkeen kukin hyväksyy, riippuu kaaviotyypistä - jokainen tuettu kaaviotyyppi käydään läpi omassa alaosiossaan alla, mukana toimiva esimerkki, joka on renderöity yhdestä pienestä jaetusta esimerkkidatasetista.

  • datasetId - dataset, josta tämä kaavio lukee tiedot - täytyy vastata datasetin nimeä.
  • chartType - area, bar, cell, dot, hexbin or line.
  • title - valinnainen kaavion otsikko.
  • dataFunction - d-kenttään sovellettava aggregaattifunktio: count (default), sum, average, min, max, median or stddev. Jätä d asettamatta, kun käytät arvoa count.
  • x - sarake X-ulottuvuudelle (pakollinen kaikissa kaaviotyypeissä).
  • y - sarake Y-ulottuvuudelle (vain cell, dot ja hexbin - ja näissä pakollinen).
  • d - sarake, joka aggregoidaan kaavion arvo-/väriulottuvuuteen.
  • r - sarake säde-ulottuvuudelle (vain dot - ja siinä pakollinen).
  • seasonX / seasonY - ryhmittelee aikasarakkeen toistuvaan jaksoon: year, quarter, month, week, dayofyear, day, dayofweek, hour, minute or second.

Ulottuvuussarakkeet luokitellaan kategorisiksi, aika- tai jatkuviksi niiden ilmoitetun tyypin perusteella - katso alla oleva datasetin JSON-osio. Kun dataFunction on count, d-ulottuvuus jätetään asettamatta - count ei tarvitse arvosaraketta. Mikä tahansa muu aggregaatti (sum, average, min, max, median or stddev) sitä vaatii.

Kaaviotyypin vaatimat ulottuvuudet on täytettävä: celliä, dotia ja hexbiniä ei voi piirtää ilman y-saraketta, eikä dotia ilman r-saraketta. Pyyntö, josta jokin niistä puuttuu, hylätään, joten jos datasetissä ei ole sopivaa saraketta, valitse kaaviotyyppi, joka ei sitä tarvitse - area, bar ja line pärjäävät pelkällä x-sarakkeella, ja hexbin piirtää kaksi ulottuvuutta ilman sädesaraketta.

Pylväs

x hyväksyy kategorisen, jatkuvan tai aikasarakkeen. d:n on oltava jatkuva, ja sitä käytetään vain, kun dataFunction ei ole count. seasonX on sallittu, kun x on aikasarake, jotta se voidaan ryhmitellä toistuvaan jaksoon, kuten viikonpäivään. y ja r eivät ole käytössä.

Viiva

x hyväksyy jatkuvan tai aikasarakkeen - ei kategorista. d:n on oltava jatkuva, käytetään vain kun dataFunction ei ole count. Kausivaihtelua ei tueta. y ja r eivät ole käytössä.

Alue

x hyväksyy jatkuvan tai aikasarakkeen - ei kategorista. d:n on oltava jatkuva, käytetään vain kun dataFunction ei ole count. Kausivaihtelua ei tueta. y ja r eivät ole käytössä.

Solu

x ja y vaativat molemmat kategorisen sarakkeen tai aikasarakkeen, jossa kausivaihtelu on käytössä (seasonX kentälle x, seasonY kentälle y). d:n on oltava jatkuva, käytetään vain kun dataFunction ei ole count. seasonY vaatii lisäksi, että x jo ratkeaa kategoriseksi ulottuvuudeksi - joko aidosti kategorisena sarakkeena tai aikasarakkeena, jossa seasonX on asetettu. r ei ole käytössä.

Piste

x ja y hyväksyvät jatkuvan tai aikasarakkeen. r:n ja d:n on molempien oltava jatkuvia - ei koskaan kategorisia tai aikasarakkeita. Kausivaihtelua ei tueta. Pistekaaviot toimivat parhaiten datasetissä, joissa on enintään muutama sata riviä.

Hexbin

x ja y hyväksyvät molemmat jatkuvan tai aikasarakkeen - ei kategorista. d:n on oltava jatkuva, käytetään vain kun dataFunction ei ole count. Kausivaihtelua ei tueta. r ei ole käytössä.

Muut widgetit

Taulukko (dash_table)

  • datasetId - näytettävä dataset.
  • fontFamily - oletus Arial; yksi seuraavista: Arial, Calibri, Cambria, Century Gothic, Courier New, Garamond, Helvetica, Consolas/Monaco (Monospace), Lucida Bright, Lucida Sans, Segoe UI, Tahoma, Verdana.
  • fontSize - oletus 12px; 6-256px tai 1-10vw.
  • color - oletus inherit.
  • bold / italic - true tai false, oletus false.
  • ratio - leveys/korkeus-suhde, luku väliltä 0.125-16.

Teksti (dash_text)

  • text - näytettävä teksti.
  • fontFamily / fontSize (oletus 3vw) / color / bold / italic - sama kuin taulukkowidgetissä.
  • justifyContent / alignItems - ‘0’ alku, ‘1’ keskikohta tai ‘2’ loppu.

Kuva (dash_image)

  • assetId - ladattu kuva.
  • objectFit - oletus none; none, contain, cover or fill.

Väli (dash_spacer)

  • size - pakollinen; oletus 100px; 0-100% tai 30-1000px.

Pinoajat (dash_stacker_hor, dash_stacker_ver)

  • children - sisäkkäiset widgetit, aseteltuina riviin (dash_stacker_hor) tai sarakkeeseen (dash_stacker_ver).
  • gap - oletus ‘10px’; lapsielementtien välinen tila.
  • minHeight - pinoajan vähimmäiskorkeus.

Datasetin JSON

Dataset on yksi JSON-objekti, jossa on nimi, tyypitetyt sarakkeet ja rivit:

{
  "name": "Orders",
  "headers": ["region", "category", "amount", "quantity"],
  "types": ["VARCHAR", "VARCHAR", "FLOAT", "INTEGER"],
  "entries": [
    ["North", "Electronics", 120.50, 2],
    ["South", "Clothing",     89.95, 1],
    ["North", "Furniture",   432.00, 5],
    ["South", "Electronics",  74.50, 1]
  ]
}
  • name - datasetin nimi; kaaviot ja taulukot viittaavat siihen datasetId-kentällään.
  • headers - sarakkeiden nimet samassa järjestyksessä kuin kunkin rivin arvot entries-kentässä.
  • types - yksi sarakkeen tyyppi per otsikko - katso alla olevat kategoriat.
  • entries - rivit, joista jokainen on arvotaulukko otsikoiden järjestyksessä.

Valinnaisesti row_start, row_end, col_start ja col_end valitsevat tuotavaksi nollasta alkavan, molemmat päät sisältävän osa-alueen entries-kentästä - hyödyllistä, kun suuremmasta taulukosta halutaan lisätä vain uudet rivit. Kaikkien neljän oletusarvo on koko alue:

{
  "name": "Orders",
  "headers": ["region", "amount"],
  "types": ["VARCHAR", "FLOAT"],
  "entries": [ ["North", 120.50], ["South", 89.95], ["North", 432.00], ["South", 74.50] ],
  "row_start": 0,
  "row_end": 1,
  "col_start": 0,
  "col_end": 1
}

Jokainen saraketyyppi luokitellaan kategoriseksi, aika- tai jatkuvaksi, mikä määrittää, missä kaavion ulottuvuuksissa sitä voi käyttää - katso yllä olevat kaaviowidget-osiot:

  • Kategorinen - BIT, BITSTRING, BOOLEAN, BOOL, LOGICAL, BLOB, BYTEA, BINARY, VARBINARY, UUID, VARCHAR, CHAR, BPCHAR, TEXT, STRING
  • Aika - DATE, TIME, TIMESTAMP, DATETIME, TIMESTAMP WITH TIME ZONE, TIMESTAMPTZ
  • Jatkuva - kaikki muut tyypit, esimerkiksi INTEGER, FLOAT, DOUBLE, BIGINT, DECIMAL

Kaavion sarakeviittausten (x, y, d, r) on vastattava otsikon nimeä tarkalleen, kirjainkoko huomioiden.

Tyylit ja teeman ohitukset

Kojelaudan tason värit asetetaan kerran kohdassa config.style.widget, ja ne koskevat jokaista widgetiä, joka ei ohita niitä:

  • color - oletustekstiväri.
  • backgroundColor - kojelaudan oletustausta.
  • primaryColor - etuala-/aktiivisen sarjan väri, jota käytetään otsikoissa ja ristisuodatetussa sarjassa.
  • primaryColorSubtle - cell-, dot- ja hexbin-kaavioiden käyttämän väriliu’un matala pää.
  • secondaryColor - taustan/suodattamattoman sarjan väri.

Mikä tahansa widget voi ohittaa oman esitystapansa suoraan JSON-solmussaan - backgroundColor, color, padding, borderRadius, borderWidth, borderColor ja shadow. Alla oleva esimerkki ohittaa yhden kaavion omat värit ja kulmat, kun taas loppu kojelauta säilyttää jaetun teeman:

{
  "type": "dash_chart",
  "datasetId": "Orders",
  "chartType": "hexbin",
  "x": "amount",
  "y": "quantity",
  "backgroundColor": "#F5F0FF",
  "borderRadius": "12px",
  "borderWidth": "1px",
  "borderColor": "#6E2BDC",
  "shadow": true
}

Täydellinen esimerkki

Pieni kojelauta, joka yhdistää otsikon, kaksi rinnakkaista kaaviota ja taulukon - kaikki lukevat tietonsa samasta datasetista:

{
  "config": {
    "type": "dashboard",
    "style": {
      "widget": {
        "color": "#000000",
        "backgroundColor": "#FFFFFF",
        "primaryColor": "#6E2BDC",
        "primaryColorSubtle": "#E2D5F8",
        "secondaryColor": "#CCCCCC"
      }
    }
  },
  "data": {
    "type": "dash",
    "children": [
      { "type": "dash_text", "text": "Orders Overview", "fontSize": "2vw", "justifyContent": "0" },
      {
        "type": "dash_stacker_hor",
        "children": [
          { "type": "dash_chart", "datasetId": "Orders", "chartType": "bar",  "x": "region", "dataFunction": "count" },
          { "type": "dash_chart", "datasetId": "Orders", "chartType": "cell", "x": "region", "y": "category", "dataFunction": "count" }
        ]
      },
      { "type": "dash_table", "datasetId": "Orders" }
    ]
  }
}