Elk dashboard dat door Sprucely.io wordt gerenderd - of het nu is gemaakt via de standalone JavaScript-runtime, de standalone React-componenten, of is opgeslagen in uw account - deelt dezelfde onderliggende JSON-structuur: een config-object voor dashboardbrede styling en een data-object dat de widget-boomstructuur beschrijft. Deze referentie documenteert die JSON volledig, samen met de datasetindeling waaruit hij leest en welk grafiektype u moet kiezen voor een bepaalde combinatie van kolommen. Voor instructies over insluiten, zie de eenvoudige dashboardintegratie-notities.
Dashboard-JSON
Elk dashboard is een enkel JSON-object met twee velden op het hoogste niveau: config, dat de dashboardbrede styling bevat, en data, een boomstructuur van getypeerde widget-nodes die begint bij één enkele dashboard-root. Elke node heeft een type-veld en, voor containertypen, een children-array met geneste nodes.
dash- de dashboard-root. Altijd precies één, bovenaan de boomstructuur.dash_stacker_hor/dash_stacker_ver- plaatst de children in een rij of een kolom.dash_chart- een grafiek, in een van de ondersteunde grafiektypen (zie hieronder).dash_table- een gegevenstabel.dash_text- een tekstblok.dash_image- een geüploade afbeelding.dash_spacer- vaste lege ruimte tussen widgets.
Elke widget accepteert dezelfde presentatievelden, ongeacht het type:
size- de grootte van de widget langs de hoofdas van de container: ‘Auto’, ‘<n>px’ of ‘<n>%’.padding- binnenmarge, bijvoorbeeld ‘10px’ (behalve bij dash_spacer).backgroundColor- een CSS-kleur, bijvoorbeeld ‘#FFFFFF’ of ‘transparent’.borderRadius/borderWidth- hoekradius en randdikte, bijvoorbeeld ‘10px’.borderColor- een CSS-kleur voor de rand.shadow- true of false; voegt een slagschaduw toe.
Grafiekwidgets
Elke grafiek deelt dezelfde velden; welke van x, y, d en r worden gebruikt, en welk kolomtype elk daarvan accepteert, hangt af van het grafiektype - elk ondersteund grafiektype wordt hieronder in een eigen subsectie behandeld, met een live voorbeeld dat wordt gerenderd vanuit één kleine gedeelde voorbeelddataset.
datasetId- de dataset waaruit deze grafiek leest - moet overeenkomen met de naam van een dataset.chartType- area, bar, cell, dot, hexbin or line.title- een optionele grafiektitel.dataFunction- het aggregaat toegepast opd: count (default), sum, average, min, max, median or stddev. Laatdongedefinieerd wanneer u count gebruikt.x- de kolom voor de X-dimensie (verplicht bij elk grafiektype).y- de kolom voor de Y-dimensie (alleen cell, dot en hexbin, en daar verplicht).d- de kolom die wordt geaggregeerd tot de waarde-/kleurdimensie van de grafiek.r- de kolom voor de straaldimensie (alleen dot, en daar verplicht).seasonX/seasonY- groepeert een tijdkolom in een terugkerende periode: year, quarter, month, week, dayofyear, day, dayofweek, hour, minute or second.
Dimensiekolommen worden geclassificeerd als categorisch, tijd of continu op basis van hun opgegeven type - zie de sectie Dataset-JSON hieronder. Wanneer dataFunction gelijk is aan count, blijft de d-dimensie ongedefinieerd - een count heeft geen waardekolom nodig. Elk ander aggregaat (sum, average, min, max, median or stddev) vereist deze wel.
De dimensies die een grafiektype nodig heeft, moeten ingevuld zijn: cell, dot en hexbin kunnen niet worden getekend zonder y, en dot niet zonder r. Een verzoek waarin er een ontbreekt, wordt geweigerd. Heeft de dataset geen geschikte kolom, kies dan een grafiektype dat deze niet nodig heeft - area, bar en line hebben genoeg aan x, en hexbin toont twee dimensies zonder straalkolom.
Staaf
x accepteert een categorische, continue of tijdkolom. d moet continu zijn en wordt alleen gebruikt wanneer dataFunction niet gelijk is aan count. seasonX is toegestaan wanneer x een tijdkolom is, om deze te groeperen in een terugkerende periode zoals dag van de week. y en r worden niet gebruikt.
Lijn
x accepteert een continue kolom of tijdkolom - niet categorisch. d moet continu zijn, en wordt alleen gebruikt wanneer dataFunction niet gelijk is aan count. Seizoensgroepering wordt niet ondersteund. y en r worden niet gebruikt.
Vlak
x accepteert een continue kolom of tijdkolom - niet categorisch. d moet continu zijn, en wordt alleen gebruikt wanneer dataFunction niet gelijk is aan count. Seizoensgroepering wordt niet ondersteund. y en r worden niet gebruikt.
Cel
x en y vereisen beide een categorische kolom, of een tijdkolom met seizoensgroepering ingeschakeld (seasonX voor x, seasonY voor y). d moet continu zijn, en wordt alleen gebruikt wanneer dataFunction niet gelijk is aan count. seasonY vereist bovendien dat x al herleid is tot een categorische dimensie - ofwel een werkelijk categorische kolom, ofwel een tijdkolom met seasonX ingesteld. r wordt niet gebruikt.
Punt
x en y accepteren een continue kolom of tijdkolom. r en d moeten beide continu zijn - nooit categorisch of tijd. Seizoensgroepering wordt niet ondersteund. Puntdiagrammen zijn het best leesbaar bij datasets van maximaal enkele honderden rijen.
Hexbin
x en y accepteren beide een continue kolom of tijdkolom - niet categorisch. d moet continu zijn, en wordt alleen gebruikt wanneer dataFunction niet gelijk is aan count. Seizoensgroepering wordt niet ondersteund. r wordt niet gebruikt.
Overige widgets
Tabel (dash_table)
datasetId- de weer te geven dataset.fontFamily- standaard Arial; een van Arial, Calibri, Cambria, Century Gothic, Courier New, Garamond, Helvetica, Consolas/Monaco (Monospace), Lucida Bright, Lucida Sans, Segoe UI, Tahoma, Verdana.fontSize- standaard 12px; 6-256px of 1-10vw.color- standaard inherit.bold/italic- true of false, standaard false.ratio- breedte/hoogteverhouding, een getal van 0.125 tot 16.
Tekst (dash_text)
text- de weer te geven tekst.fontFamily/fontSize(standaard 3vw) /color/bold/italic- hetzelfde als bij de tabelwidget.justifyContent/alignItems- ‘0’ start, ‘1’ center or ‘2’ end.
Afbeelding (dash_image)
assetId- een geüploade afbeeldingsasset.objectFit- standaard none; none, contain, cover or fill.
Tussenruimte (dash_spacer)
size- verplicht; standaard 100px; 0-100% of 30-1000px.
Stapelaars (dash_stacker_hor, dash_stacker_ver)
children- de geneste widgets, geplaatst in een rij (dash_stacker_hor) of een kolom (dash_stacker_ver).gap- standaard ‘10px’; ruimte tussen children.minHeight- een minimumhoogte voor de stapelaar.
Dataset-JSON
Een dataset is een enkel JSON-object met een naam, getypeerde kolommen en rijen:
{
"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- de naam van de dataset; grafieken en tabellen verwijzen ernaar via hundatasetId-veld.headers- de kolomnamen, in dezelfde volgorde als elke rij in entries.types- één kolomtype per header - zie de categorieën hieronder.entries- de rijen, elk een array van waarden in de volgorde van de headers.
Optioneel selecteren row_start, row_end, col_start en col_end een nulgebaseerd, inclusief subbereik van entries om te importeren - handig wanneer u alleen nieuwe rijen uit een grotere tabel wilt toevoegen. Alle vier staan standaard op het volledige bereik:
{
"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
}Elk kolomtype wordt geclassificeerd als categorisch, tijd of continu, wat bepaalt voor welke grafiekdimensies het kan worden gebruikt - zie de secties over grafiekwidgets hierboven:
- Categorisch -
BIT, BITSTRING, BOOLEAN, BOOL, LOGICAL, BLOB, BYTEA, BINARY, VARBINARY, UUID, VARCHAR, CHAR, BPCHAR, TEXT, STRING - Tijd -
DATE, TIME, TIMESTAMP, DATETIME, TIMESTAMP WITH TIME ZONE, TIMESTAMPTZ - Continu - elk ander type, bijvoorbeeld
INTEGER, FLOAT, DOUBLE, BIGINT, DECIMAL
Kolomverwijzingen in een grafiek (x, y, d, r) moeten exact overeenkomen met een headernaam, hoofdlettergevoelig.
Styling en themaoverschrijvingen
Kleuren op dashboardniveau worden één keer ingesteld in config.style.widget en gelden voor elke widget die ze niet overschrijft:
color- de standaard tekstkleur.backgroundColor- de standaard dashboardachtergrond.primaryColor- de voorgrond-/actieve-reekskleur, gebruikt voor koppen en de kruisgefilterde reeks.primaryColorSubtle- het lage uiteinde van het kleurverloop gebruikt door cell-, dot- en hexbin-grafieken.secondaryColor- de achtergrond-/ongefilterde-reekskleur.
Elke widget kan zijn eigen presentatie rechtstreeks op zijn JSON-node overschrijven - backgroundColor, color, padding, borderRadius, borderWidth, borderColor en shadow. Het onderstaande voorbeeld overschrijft de eigen kleuren en hoeken van één grafiek, terwijl de rest van het dashboard het gedeelde thema behoudt:
{
"type": "dash_chart",
"datasetId": "Orders",
"chartType": "hexbin",
"x": "amount",
"y": "quantity",
"backgroundColor": "#F5F0FF",
"borderRadius": "12px",
"borderWidth": "1px",
"borderColor": "#6E2BDC",
"shadow": true
}Volledig voorbeeld
Een klein dashboard dat een header, twee grafieken naast elkaar en een tabel combineert, allemaal lezend uit één dataset:
{
"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" }
]
}
}