Alle dashboard som genereres av Sprucely.io - enten de er opprettet via den frittstående JavaScript-runtimen, de frittstående React-komponentene, eller lagret på kontoen din - har samme underliggende JSON-struktur: et config-objekt for dashboardets overordnede styling og et data-objekt som beskriver widget-treet. Denne referansen dokumenterer denne JSON-strukturen i sin helhet, sammen med datasettformatet den leser fra, og hvilken diagramtype som bør velges for en gitt kombinasjon av kolonner. Se notatene om enkel dashboard-integrasjon for instruksjoner om innbygging.
Dashboard-JSON
Hvert dashboard er ett enkelt JSON-objekt med to nøkler på øverste nivå: config, som inneholder dashboardets overordnede styling, og data, et tre av typede widget-noder som starter fra én enkelt dashboard-rot. Hver node har et type-felt og, for beholdertyper, et children-array med nøstede noder.
dash- dashboardets rot. Det finnes alltid nøyaktig én, øverst i treet.dash_stacker_hor/dash_stacker_ver- plasserer sine underelementer i en rad eller en kolonne.dash_chart- et diagram, i en av de støttede diagramtypene (se nedenfor).dash_table- en datatabell.dash_text- en tekstblokk.dash_image- et opplastet bilde.dash_spacer- fast tomrom mellom widgets.
Alle widgets godtar de samme presentasjonsfeltene, uavhengig av type:
size- widgetens størrelse langs beholderens hovedakse: ‘Auto’, ‘<n>px’ eller ‘<n>%’.padding- indre avstand, for eksempel ‘10px’ (unntatt dash_spacer).backgroundColor- en CSS-farge, for eksempel ‘#FFFFFF’ eller ‘transparent’.borderRadius/borderWidth- hjørneradius og kanttykkelse, for eksempel ‘10px’.borderColor- en CSS-farge for kanten.shadow- true eller false; legger til en slagskygge.
Diagram-widgets
Alle diagrammer deler de samme feltene; hvilke av x, y, d og r som brukes, og hvilken kolonnetype hver av dem godtar, avhenger av diagramtypen - hver av de støttede diagramtypene gjennomgås i sitt eget underavsnitt nedenfor, med et levende eksempel generert fra ett lite, felles eksempeldatasett.
datasetId- datasettet dette diagrammet leser fra - må samsvare med navnet på et datasett.chartType- area, bar, cell, dot, hexbin or line.title- en valgfri diagramtittel.dataFunction- aggregeringen som brukes påd: count (default), sum, average, min, max, median or stddev. Ladstå ubrukt når count brukes.x- kolonnen for X-dimensjonen (påkrevd for alle diagramtyper).y- kolonnen for Y-dimensjonen (kun cell, dot og hexbin - og påkrevd for disse tre).d- kolonnen som aggregeres til diagrammets verdi-/fargedimensjon.r- kolonnen for radiusdimensjonen (kun dot, og påkrevd).seasonX/seasonY- grupperer en tidskolonne i en tilbakevendende periode: year, quarter, month, week, dayofyear, day, dayofweek, hour, minute or second.
Dimensjonskolonner klassifiseres som kategoriske, tidsbaserte eller kontinuerlige basert på den angitte typen - se avsnittet om datasett-JSON nedenfor. Når dataFunction er count, er d-dimensjonen utelatt - en telling trenger ingen verdikolonne. Enhver annen aggregering (sum, average, min, max, median or stddev) krever den.
Dimensjonene en diagramtype krever, må fylles ut: cell, dot og hexbin kan ikke tegnes uten y, og dot kan ikke tegnes uten r. En forespørsel som utelater en av dem, blir avvist, så hvis datasettet ikke har en egnet kolonne, velg en diagramtype som ikke trenger den - area, bar og line klarer seg med x, og hexbin viser to dimensjoner uten radiuskolonne.
Stolpe
x godtar en kategorisk, kontinuerlig eller tidsbasert kolonne. d må være kontinuerlig, og brukes kun når dataFunction ikke er count. seasonX er tillatt når x er en tidskolonne, for å gruppere den i en tilbakevendende periode som ukedag. y og r brukes ikke.
Linje
x godtar en kontinuerlig eller tidsbasert kolonne - ikke kategorisk. d må være kontinuerlig, og brukes kun når dataFunction ikke er count. Sesongbasert gruppering støttes ikke. y og r brukes ikke.
Areal
x godtar en kontinuerlig eller tidsbasert kolonne - ikke kategorisk. d må være kontinuerlig, og brukes kun når dataFunction ikke er count. Sesongbasert gruppering støttes ikke. y og r brukes ikke.
Celle
x og y krever begge en kategorisk kolonne, eller en tidskolonne med sesongbasert gruppering aktivert (seasonX for x, seasonY for y). d må være kontinuerlig, og brukes kun når dataFunction ikke er count. seasonY krever i tillegg at x allerede løses til en kategorisk dimensjon - enten en genuint kategorisk kolonne, eller en tidskolonne med seasonX angitt. r brukes ikke.
Punkt
x og y godtar en kontinuerlig eller tidsbasert kolonne. r og d må begge være kontinuerlige - aldri kategoriske eller tidsbaserte. Sesongbasert gruppering støttes ikke. Punktdiagrammer leses best med datasett på opptil noen få hundre rader.
Hexbin
x og y godtar begge en kontinuerlig eller tidsbasert kolonne - ikke kategorisk. d må være kontinuerlig, og brukes kun når dataFunction ikke er count. Sesongbasert gruppering støttes ikke. r brukes ikke.
Andre widgets
Tabell (dash_table)
datasetId- datasettet som skal vises.fontFamily- standard er Arial; én av Arial, Calibri, Cambria, Century Gothic, Courier New, Garamond, Helvetica, Consolas/Monaco (Monospace), Lucida Bright, Lucida Sans, Segoe UI, Tahoma, Verdana.fontSize- standard er 12px; 6-256px eller 1-10vw.color- standard er inherit.bold/italic- true eller false, standard er false.ratio- forholdet mellom bredde og høyde, et tall fra 0.125 til 16.
Tekst (dash_text)
text- teksten som skal vises.fontFamily/fontSize(standard 3vw) /color/bold/italic- samme som for tabell-widgeten.justifyContent/alignItems- ‘0’ start, ‘1’ center eller ‘2’ end.
Bilde (dash_image)
assetId- en opplastet bilderessurs.objectFit- standard er none; none, contain, cover or fill.
Mellomrom (dash_spacer)
size- påkrevd; standard er 100px; 0-100% eller 30-1000px.
Stablere (dash_stacker_hor, dash_stacker_ver)
children- de nøstede widgetene, arrangert i en rad (dash_stacker_hor) eller en kolonne (dash_stacker_ver).gap- standard er ‘10px’; avstand mellom underelementer.minHeight- en minimumshøyde for stableren.
Datasett-JSON
Et datasett er ett enkelt JSON-objekt med et navn, typede kolonner og rader:
{
"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- datasettets navn; diagrammer og tabeller refererer til det via sittdatasetId-felt.headers- kolonnenavnene, i samme rekkefølge som hver rad i entries.types- én kolonnetype per header - se kategoriene nedenfor.entries- radene, hver et array av verdier i header-rekkefølge.
Valgfritt kan row_start, row_end, col_start og col_end velge et null-indeksert, inkluderende underintervall av entries som skal importeres - nyttig når kun nye rader fra en større tabell skal legges til. Alle fire har som standard hele intervallet:
{
"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
}Hver kolonnetype klassifiseres som kategorisk, tidsbasert eller kontinuerlig, noe som avgjør hvilke diagramdimensjoner den kan brukes til - se avsnittene om diagram-widgets ovenfor:
- Kategorisk -
BIT, BITSTRING, BOOLEAN, BOOL, LOGICAL, BLOB, BYTEA, BINARY, VARBINARY, UUID, VARCHAR, CHAR, BPCHAR, TEXT, STRING - Tid -
DATE, TIME, TIMESTAMP, DATETIME, TIMESTAMP WITH TIME ZONE, TIMESTAMPTZ - Kontinuerlig - alle andre typer, for eksempel
INTEGER, FLOAT, DOUBLE, BIGINT, DECIMAL
Kolonnereferanser i et diagram (x, y, d, r) må samsvare nøyaktig med et header-navn, med skille mellom store og små bokstaver.
Styling og temaoverstyringer
Farger på dashboard-nivå angis ett sted i config.style.widget og gjelder for alle widgets som ikke overstyrer dem:
color- standard tekstfarge.backgroundColor- standard bakgrunn for dashboardet.primaryColor- forgrunns-/aktiv-seriefargen, brukt for overskrifter og den kryssfiltrerte serien.primaryColorSubtle- den lave enden av fargegradienten som brukes av cell-, dot- og hexbin-diagrammer.secondaryColor- bakgrunns-/ufiltrert-seriefargen.
Enhver widget kan overstyre sin egen presentasjon direkte på sin JSON-node - backgroundColor, color, padding, borderRadius, borderWidth, borderColor og shadow. Eksemplet nedenfor overstyrer ett diagrams egne farger og hjørner, mens resten av dashboardet beholder det felles temaet:
{
"type": "dash_chart",
"datasetId": "Orders",
"chartType": "hexbin",
"x": "amount",
"y": "quantity",
"backgroundColor": "#F5F0FF",
"borderRadius": "12px",
"borderWidth": "1px",
"borderColor": "#6E2BDC",
"shadow": true
}Komplett eksempel
Et lite dashboard som kombinerer en overskrift, to diagrammer side om side og en tabell, alle med data fra ett datasett:
{
"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" }
]
}
}