Principy mapování zobrazení dat ve vizuálech Power BI
Tento článek popisuje mapování zobrazení dat a popisuje způsob použití datových rolí k vytvoření různých typů vizuálů. Vysvětluje, jak určit podmíněné požadavky pro role dat a také různé dataMappings
typy.
Každé platné mapování vytvoří zobrazení dat. Za určitých podmínek můžete zadat více mapování dat. Podporované možnosti mapování jsou:
"dataViewMappings": [
{
"conditions": [ ... ],
"categorical": { ... },
"single": { ... },
"table": { ... },
"matrix": { ... }
}
]
Power BI vytvoří mapování na zobrazení dat, pokud je také definováno platné mapování .dataViewMappings
Jinými slovy, categorical
může být v objektu dataViewMappings
definováno, ale jiná mapování, například table
nebo single
, už ne. V takovém případě Power BI vytvoří zobrazení dat s jedním categorical
mapováním, zatímco table
jiná mapování zůstanou nedefinovaná. Příklad:
"dataViewMappings": [
{
"categorical": {
"categories": [ ... ],
"values": [ ... ]
},
"metadata": { ... }
}
]
Podmínky
Tato conditions
část stanoví pravidla pro konkrétní mapování dat. Pokud data odpovídají jedné z popsaných sad podmínek, vizuál přijme data jako platná.
Momentálně můžete pro každé pole zadat minimální a maximální hodnotu. Tato hodnota představuje počet polí, která lze s danou rolí dat svázat.
Poznámka
Pokud v podmínce roli dat vynecháte, může obsahovat libovolný počet polí.
V následujícím příkladu omezíte category
omezení na jedno datové pole a measure
na dvě datová pole.
"conditions": [
{ "category": { "max": 1 }, "measure": { "max": 2 } },
]
Můžete také nastavit více podmínek pro roli dat. V takovém případě jsou data platná, pokud je splněna některá z podmínek.
"conditions": [
{ "category": { "min": 1, "max": 1 }, "measure": { "min": 2, "max": 2 } },
{ "category": { "min": 2, "max": 2 }, "measure": { "min": 1, "max": 1 } }
]
V předchozím příkladu je vyžadována jedna z následujících dvou podmínek:
- Přesně jedno pole kategorie a přesně dvě míry
- Přesně dvě kategorie a přesně jedna míra
Jednoduché mapování dat
Jednoduché mapování dat představuje nejjednodušší formu mapování dat. Přijme jedno pole míry a vrátí součet. Pokud je pole číselné, vrátí součet. V opačném případě vrátí počet jedinečných hodnot.
Pokud chcete použít jedno mapování dat, definujte název role dat, kterou chcete mapovat. Toto mapování funguje pouze s jedním polem míry. Pokud je přiřazené druhé pole, nevygeneruje se žádné zobrazení dat, takže je vhodné zahrnout podmínku omezující data na jedno pole.
Poznámka
Toto mapování nelze používat spolu s žádným jiným mapováním dat. Účelem je snížit data na jednu číselnou hodnotu.
Příklad:
{
"dataRoles": [
{
"displayName": "Y",
"name": "Y",
"kind": "Measure"
}
],
"dataViewMappings": [
{
"conditions": [
{
"Y": {
"max": 1
}
}
],
"single": {
"role": "Y"
}
}
]
}
Výsledné zobrazení dat může stále obsahovat jiné typy (tabulky, kategorické atd.), ale každé mapování obsahuje pouze jednu hodnotu. Osvědčeným postupem je přístup k hodnotě jenom v jednoduchém mapování.
{
"dataView": [
{
"metadata": null,
"categorical": null,
"matrix": null,
"table": null,
"tree": null,
"single": {
"value": 94163140.3560001
}
}
]
}
Ukázka kódu pro zpracování jednoduchého mapování zobrazení dat
"use strict";
import powerbi from "powerbi-visuals-api";
import DataView = powerbi.DataView;
import DataViewSingle = powerbi.DataViewSingle;
// standard imports
// ...
export class Visual implements IVisual {
private target: HTMLElement;
private host: IVisualHost;
private valueText: HTMLParagraphElement;
constructor(options: VisualConstructorOptions) {
// constructor body
this.target = options.element;
this.host = options.host;
this.valueText = document.createElement("p");
this.target.appendChild(this.valueText);
// ...
}
public update(options: VisualUpdateOptions) {
const dataView: DataView = options.dataViews[0];
const singleDataView: DataViewSingle = dataView.single;
if (!singleDataView ||
!singleDataView.value ) {
return
}
this.valueText.innerText = singleDataView.value.toString();
}
}
Výše uvedený kód vede k zobrazení jedné hodnoty z Power BI:
Kategorické mapování dat
Mapování dat kategorií slouží k získání nezávislých seskupení nebo kategorií dat. Kategorie lze také dále seskupit pomocí skupiny pomocí mapování dat.
Základní mapování dat kategorií
Zvažte následující role a mapování dat:
"dataRoles":[
{
"displayName": "Category",
"name": "category",
"kind": "Grouping"
},
{
"displayName": "Y Axis",
"name": "measure",
"kind": "Measure"
}
],
"dataViewMappings": {
"categorical": {
"categories": {
"for": { "in": "category" }
},
"values": {
"select": [
{ "bind": { "to": "measure" } }
]
}
}
}
V předchozím příkladu je uvedeno "Mapování mé category
datové role tak, aby pro každé pole, které přetáhnem do category
, jeho data jsou mapována na categorical.categories
. Také namapovat moji datovou measure
roli na categorical.values
."
- Pro... in: Do dotazu na data zahrňte všechny položky v této roli dat.
- Vázat... to: Vytvoří stejný výsledek jako pro... ale očekává, že role dat bude mít podmínku, která ji omezuje na jedno pole.
Seskupování kategorických dat
Následující příklad používá stejné dvě datové role jako předchozí příklad a přidá do dalších datových rolí pojmenovaných grouping
a measure2
.
"dataRole":[
{
"displayName": "Category",
"name": "category",
"kind": "Grouping"
},
{
"displayName": "Y Axis",
"name": "measure",
"kind": "Measure"
},
{
"displayName": "Grouping with",
"name": "grouping",
"kind": "Grouping"
},
{
"displayName": "X Axis",
"name": "measure2",
"kind": "Grouping"
}
],
"dataViewMappings":{
"categorical": {
"categories": {
"for": { "in": "category" }
},
"values": {
"group": {
"by": "grouping",
"select":[
{ "bind": { "to": "measure" } },
{ "bind": { "to": "measure2" } }
]
}
}
}
}
Rozdíl mezi tímto mapováním a základním je v tom, jak mapujeme categorical.values
. Mapováním measure
rolí dat measure2
na roli grouping
dat můžeme odpovídajícím způsobem škálovat osu x a osu y.
Seskupení hierarchických dat
V dalším příkladu použijeme kategorická data k vytvoření hierarchie, která se dá použít k podpoře akcí přechodu k podrobnostem .
Tady jsou datové role a mapování:
"dataRoles": [
{
"displayName": "Categories",
"name": "category",
"kind": "Grouping"
},
{
"displayName": "Measures",
"name": "measure",
"kind": "Measure"
},
{
"displayName": "Series",
"name": "series",
"kind": "Measure"
}
],
"dataViewMappings": [
{
"categorical": {
"categories": {
"for": {
"in": "category"
}
},
"values": {
"group": {
"by": "series",
"select": [{
"for": {
"in": "measure"
}
}
]
}
}
}
}
]
Zvažte následující kategorická data:
Země | 2013 | 2014 | 2015 | 2016 |
---|---|---|---|---|
USA | x | x | 650 | 350 |
Kanada | x | 630 | 490 | x |
Mexiko | 645 | x | x | x |
UK | x | x | 831 | x |
Power BI vytvoří zobrazení dat kategorií s následující sadou kategorií.
{
"categorical": {
"categories": [
{
"source": {...},
"values": [
"Canada",
"USA",
"UK",
"Mexico"
],
"identity": [...],
"identityFields": [...],
}
]
}
}
Každá category
mapa je také nastavená na sadu values
. Každý z nich values
je seskupený podle series
, který je vyjádřen jako roky.
Například každé values
pole představuje jeden rok.
values
Každé pole má také čtyři hodnoty: Kanada, USA, Velká Británie a Mexiko:
{
"values": [
// Values for year 2013
{
"source": {...},
"values": [
null, // Value for `Canada` category
null, // Value for `USA` category
null, // Value for `UK` category
645 // Value for `Mexico` category
],
"identity": [...],
},
// Values for year 2014
{
"source": {...},
"values": [
630, // Value for `Canada` category
null, // Value for `USA` category
null, // Value for `UK` category
null // Value for `Mexico` category
],
"identity": [...],
},
// Values for year 2015
{
"source": {...},
"values": [
490, // Value for `Canada` category
650, // Value for `USA` category
831, // Value for `UK` category
null // Value for `Mexico` category
],
"identity": [...],
},
// Values for year 2016
{
"source": {...},
"values": [
null, // Value for `Canada` category
350, // Value for `USA` category
null, // Value for `UK` category
null // Value for `Mexico` category
],
"identity": [...],
}
]
}
Níže je ukázka kódu pro zpracování mapování zobrazení dat kategorií. Tato ukázka vytvoří hierarchickou strukturu. Country => Year => Value
"use strict";
import powerbi from "powerbi-visuals-api";
import DataView = powerbi.DataView;
import DataViewCategorical = powerbi.DataViewCategorical;
import DataViewValueColumnGroup = powerbi.DataViewValueColumnGroup;
import PrimitiveValue = powerbi.PrimitiveValue;
// standard imports
// ...
export class Visual implements IVisual {
private target: HTMLElement;
private host: IVisualHost;
private categories: HTMLElement;
constructor(options: VisualConstructorOptions) {
// constructor body
this.target = options.element;
this.host = options.host;
this.categories = document.createElement("pre");
this.target.appendChild(this.categories);
// ...
}
public update(options: VisualUpdateOptions) {
const dataView: DataView = options.dataViews[0];
const categoricalDataView: DataViewCategorical = dataView.categorical;
if (!categoricalDataView ||
!categoricalDataView.categories ||
!categoricalDataView.categories[0] ||
!categoricalDataView.values) {
return;
}
// Categories have only one column in data buckets
// To support several columns of categories data bucket, iterate categoricalDataView.categories array.
const categoryFieldIndex = 0;
// Measure has only one column in data buckets.
// To support several columns on data bucket, iterate years.values array in map function
const measureFieldIndex = 0;
let categories: PrimitiveValue[] = categoricalDataView.categories[categoryFieldIndex].values;
let values: DataViewValueColumnGroup[] = categoricalDataView.values.grouped();
let data = {};
// iterate categories/countries
categories.map((category: PrimitiveValue, categoryIndex: number) => {
data[category.toString()] = {};
// iterate series/years
values.map((years: DataViewValueColumnGroup) => {
if (!data[category.toString()][years.name] && years.values[measureFieldIndex].values[categoryIndex]) {
data[category.toString()][years.name] = []
}
if (years.values[0].values[categoryIndex]) {
data[category.toString()][years.name].push(years.values[measureFieldIndex].values[categoryIndex]);
}
});
});
this.categories.innerText = JSON.stringify(data, null, 6);
console.log(data);
}
}
Tady je výsledný vizuál:
Mapování tabulek
Zobrazení dat tabulky je v podstatě seznam datových bodů, kde lze agregovat číselné datové body.
Například použití stejných dat jako v předchozí části, ale s následujícími možnostmi:
"dataRoles": [
{
"displayName": "Column",
"name": "column",
"kind": "Grouping"
},
{
"displayName": "Value",
"name": "value",
"kind": "Measure"
}
],
"dataViewMappings": [
{
"table": {
"rows": {
"select": [
{
"for": {
"in": "column"
}
},
{
"for": {
"in": "value"
}
}
]
}
}
}
]
Zobrazení dat tabulky můžete vizualizovat takto:
Ukázka dat:
Země | Year (Rok) | Sales |
---|---|---|
USA | 2016 | 100 |
USA | 2015 | 50 |
Kanada | 2015 | 200 |
Kanada | 2015 | 50 |
Mexiko | 2013 | 300 |
UK | 2014 | 150 |
USA | 2015 | 75 |
Datová vazba:
Power BI zobrazí data jako zobrazení dat tabulky. Nepředpokládáte, že jsou data seřazená.
{
"table" : {
"columns": [...],
"rows": [
[
"Canada",
2014,
630
],
[
"Canada",
2015,
490
],
[
"Mexico",
2013,
645
],
[
"UK",
2014,
831
],
[
"USA",
2015,
650
],
[
"USA",
2016,
350
]
]
}
}
Pokud chcete data agregovat, vyberte požadované pole a pak vyberte součet.
Ukázka kódu pro zpracování mapování zobrazení dat tabulky
"use strict";
import "./../style/visual.less";
import powerbi from "powerbi-visuals-api";
// ...
import DataViewMetadataColumn = powerbi.DataViewMetadataColumn;
import DataViewTable = powerbi.DataViewTable;
import DataViewTableRow = powerbi.DataViewTableRow;
import PrimitiveValue = powerbi.PrimitiveValue;
// standard imports
// ...
export class Visual implements IVisual {
private target: HTMLElement;
private host: IVisualHost;
private table: HTMLParagraphElement;
constructor(options: VisualConstructorOptions) {
// constructor body
this.target = options.element;
this.host = options.host;
this.table = document.createElement("table");
this.target.appendChild(this.table);
// ...
}
public update(options: VisualUpdateOptions) {
const dataView: DataView = options.dataViews[0];
const tableDataView: DataViewTable = dataView.table;
if (!tableDataView) {
return
}
while(this.table.firstChild) {
this.table.removeChild(this.table.firstChild);
}
//draw header
const tableHeader = document.createElement("th");
tableDataView.columns.forEach((column: DataViewMetadataColumn) => {
const tableHeaderColumn = document.createElement("td");
tableHeaderColumn.innerText = column.displayName
tableHeader.appendChild(tableHeaderColumn);
});
this.table.appendChild(tableHeader);
//draw rows
tableDataView.rows.forEach((row: DataViewTableRow) => {
const tableRow = document.createElement("tr");
row.forEach((columnValue: PrimitiveValue) => {
const cell = document.createElement("td");
cell.innerText = columnValue.toString();
tableRow.appendChild(cell);
})
this.table.appendChild(tableRow);
});
}
}
Soubor stylů vizuálu style/visual.less
obsahuje rozložení pro tabulku:
table {
display: flex;
flex-direction: column;
}
tr, th {
display: flex;
flex: 1;
}
td {
flex: 1;
border: 1px solid black;
}
Výsledný vizuál vypadá takto:
Maticové mapování dat
Mapování maticových dat je podobné mapování dat tabulky, ale řádky se zobrazují hierarchicky. Některou z hodnot rolí dat můžete použít jako hodnotu záhlaví sloupce.
{
"dataRoles": [
{
"name": "Category",
"displayName": "Category",
"displayNameKey": "Visual_Category",
"kind": "Grouping"
},
{
"name": "Column",
"displayName": "Column",
"displayNameKey": "Visual_Column",
"kind": "Grouping"
},
{
"name": "Measure",
"displayName": "Measure",
"displayNameKey": "Visual_Values",
"kind": "Measure"
}
],
"dataViewMappings": [
{
"matrix": {
"rows": {
"for": {
"in": "Category"
}
},
"columns": {
"for": {
"in": "Column"
}
},
"values": {
"select": [
{
"for": {
"in": "Measure"
}
}
]
}
}
}
]
}
Hierarchická struktura maticových dat
Power BI vytvoří hierarchickou datovou strukturu. Kořen stromové hierarchie obsahuje data ze sloupce Nadřazené prvky v roli dat Category
, s podřízenými prvky ze sloupce Podřízené prvky v tabulce rolí dat.
Datová sada:
Nadřazené prvky | Podřízené prvky | Podřízené prvky druhé úrovně | Sloupce | Hodnoty |
---|---|---|---|---|
Nadřazený prvek 1 | Podřízený prvek 1 | Podřízený prvek druhé úrovně 1 | Sloupec 1 | 5 |
Nadřazený prvek 1 | Podřízený prvek 1 | Podřízený prvek druhé úrovně 1 | Sloupec 2 | 6 |
Nadřazený prvek 1 | Podřízený prvek 1 | Podřízený prvek druhé úrovně 2 | Sloupec 1 | 7 |
Nadřazený prvek 1 | Podřízený prvek 1 | Podřízený prvek druhé úrovně 2 | Sloupec 2 | 8 |
Nadřazený prvek 1 | Podřízený prvek 2 | Podřízený prvek druhé úrovně 3 | Sloupec 1 | 5 |
Nadřazený prvek 1 | Podřízený prvek 2 | Podřízený prvek druhé úrovně 3 | Sloupec 2 | 3 |
Nadřazený prvek 1 | Podřízený prvek 2 | Podřízený prvek druhé úrovně 4 | Sloupec 1 | 4 |
Nadřazený prvek 1 | Podřízený prvek 2 | Podřízený prvek druhé úrovně 4 | Sloupec 2 | 9 |
Nadřazený prvek 1 | Podřízený prvek 2 | Podřízený prvek druhé úrovně 5 | Sloupec 1 | 3 |
Nadřazený prvek 1 | Podřízený prvek 2 | Podřízený prvek druhé úrovně 5 | Sloupec 2 | 5 |
Nadřazený prvek 2 | Podřízený prvek 3 | Podřízený prvek druhé úrovně 6 | Sloupec 1 | 1 |
Nadřazený prvek 2 | Podřízený prvek 3 | Podřízený prvek druhé úrovně 6 | Sloupec 2 | 2 |
Nadřazený prvek 2 | Podřízený prvek 3 | Podřízený prvek druhé úrovně 7 | Sloupec 1 | 7 |
Nadřazený prvek 2 | Podřízený prvek 3 | Podřízený prvek druhé úrovně 7 | Sloupec 2 | 1 |
Nadřazený prvek 2 | Podřízený prvek 3 | Podřízený prvek druhé úrovně 8 | Sloupec 1 | 10 |
Nadřazený prvek 2 | Podřízený prvek 3 | Podřízený prvek druhé úrovně 8 | Sloupec 2 | 13 |
Základní vizuál matice Power BI vykreslí data jako tabulku.
Vizuál získá datovou strukturu podle popisu v následujícím kódu (tady jsou zobrazeny jenom první dva řádky tabulky):
{
"metadata": {...},
"matrix": {
"rows": {
"levels": [...],
"root": {
"childIdentityFields": [...],
"children": [
{
"level": 0,
"levelValues": [...],
"value": "Parent1",
"identity": {...},
"childIdentityFields": [...],
"children": [
{
"level": 1,
"levelValues": [...],
"value": "Child1",
"identity": {...},
"childIdentityFields": [...],
"children": [
{
"level": 2,
"levelValues": [...],
"value": "Grand child1",
"identity": {...},
"values": {
"0": {
"value": 5 // value for Col1
},
"1": {
"value": 6 // value for Col2
}
}
},
...
]
},
...
]
},
...
]
}
},
"columns": {
"levels": [...],
"root": {
"childIdentityFields": [...],
"children": [
{
"level": 0,
"levelValues": [...],
"value": "Col1",
"identity": {...}
},
{
"level": 0,
"levelValues": [...],
"value": "Col2",
"identity": {...}
},
...
]
}
},
"valueSources": [...]
}
}
Rozbalení a sbalení záhlaví řádků
Počínaje rozhraním API 4.1.0 budou maticová data podporovat rozbalení a sbalování záhlaví řádků. Funkce rozbalení/sbalení optimalizuje načítání dat do dataView tím, že uživateli umožní rozbalit nebo sbalit řádek, aniž by načítá všechna data pro další úroveň. Načte data jenom pro vybraný řádek. Stav rozšíření záhlaví řádku zůstane konzistentní napříč záložkami a dokonce i mezi ukládáními sestav. Není specifický pro každý vizuál.
Příkazy rozbalení a sbalení lze také přidat do místní nabídky zadáním dataRoles
parametru metodě showContextMenu
.
Funkce rozhraní API
Pokud chcete povolit rozbalení a sbalování záhlaví řádků, přidali jsme následující položky do rozhraní API verze 4.1.0.
Příznak
isCollapsed
v :DataViewTreeNode
interface DataViewTreeNode { //... /** * TRUE if the node is Collapsed * FALSE if it is Expanded * Undefined if it cannot be Expanded (e.g. subtotal) */ isCollapsed?: boolean; }
Metoda
toggleExpandCollapse
vISelectionManger
rozhraní:interface ISelectionManager { //... showContextMenu(selectionId: ISelectionId, position: IPoint, dataRoles?: string): IPromise<{}>; // dataRoles is the name of the role of the selected data point toggleExpandCollapse(selectionId: ISelectionId, entireLevel?: boolean): IPromise<{}>; // Expand/Collapse an entire level will be available from API 4.2.0 //... }
Příznak
canBeExpanded
v objektu DataViewHierarchyLevel:interface DataViewHierarchyLevel { //... /** If TRUE, this level can be expanded/collapsed */ canBeExpanded?: boolean; }
Vizuální požadavky
Povolení funkce rozbalení sbalování vizuálu pomocí zobrazení maticových dat:
Do souboru capabilities.json přidejte následující:
"expandCollapse": { "roles": ["Rows"], //”Rows” is the name of rows data role "addDataViewFlags": { "defaultValue": true //indicates if the DataViewTreeNode will get the isCollapsed flag by default } },
Ujistěte se, že jsou role pro přechod k podrobnostem:
"drilldown": { "roles": ["Rows"] },
Pro každý uzel vytvořte instanci tvůrce výběru a zavolejte metodu
withMatrixNode
na úrovni hierarchie vybraných uzlů a vytvořteselectionId
. Příklad:let nodeSelectionBuilder: ISelectionIdBuilder = visualHost.createSelectionIdBuilder(); // parantNodes is a list of the parents of the selected node. // node is the current node which the selectionId is created for. parentNodes.push(node); for (let i = 0; i < parentNodes.length; i++) { nodeSelectionBuilder = nodeSelectionBuilder.withMatrixNode(parentNodes[i], levels); } const nodeSelectionId: ISelectionId = nodeSelectionBuilder.createSelectionId();
Vytvořte instanci správce výběru a použijte metodu
selectionManager.toggleExpandCollapse()
s parametremselectionId
, který jste vytvořili pro vybraný uzel. Příklad:// handle click events to apply expand\collapse action for the selected node button.addEventListener("click", () => { this.selectionManager.toggleExpandCollapse(nodeSelectionId); });
Poznámka
- Pokud vybraný uzel není uzel řádku, PowerBI ignoruje volání rozbalení nebo sbalení a příkazy rozbalení a sbalení se odeberou z místní nabídky.
- Parametr
dataRoles
se vyžaduje pro metodushowContextMenu
pouze v případě, že vizuál podporujedrilldown
neboexpandCollapse
obsahuje funkce. Pokud vizuál tyto funkce podporuje, ale datovérole nebyly zadány, při použití vizuálu pro vývojáře dojde k chybě nebo při ladění veřejného vizuálu s povoleným režimem ladění.
Důležité informace a omezení
- Po rozbalení uzlu se na DataView použijí nová omezení dat. To znamená, že nové zobrazení DataView nemusí obsahovat některé uzly zobrazené v předchozím zobrazení DataView.
- Při použití rozbalení nebo sbalení se součty přidají i v případě, že je vizuál nepožadoval.
- V současné době se nepodporuje rozbalení a sbalování sloupců.
Zachovat všechny sloupce metadat
Počínaje rozhraním API 5.1.0 bude podporováno zachování všech sloupců metadat. Tato funkce umožňuje vizuálu přijímat metadata pro všechny sloupce bez ohledu na to, co jsou jejich aktivní projekce.
Do souboru capabilities.json přidejte následující řádky:
"keepAllMetadataColumns": {
"type": "boolean",
"description": "Indicates that visual is going to receive all metadata columns, no matter what the active projections are"
}
Nastavení této vlastnosti true
bude mít za následek příjem všech metadat, včetně z sbalovaných sloupců. false
Nastavením nebo ponechání nedefinovaného bude příjem metadat pouze u sloupců s aktivními projekcemi (například rozbalené).
Algoritmus redukce dat
Algoritmus redukce dat řídí, která data a kolik dat se přijímají v zobrazení dat.
Počet je nastavený na maximální počet hodnot, které může zobrazení dat přijmout. Pokud existuje více hodnot než počet , algoritmus redukce dat určuje, které hodnoty by se měly přijímat.
Typy algoritmu redukce dat
Existují čtyři typy nastavení algoritmu redukce dat:
top
: První hodnoty počtu budou převzaty z datové sady.bottom
: Poslední hodnoty počtu budou převzaty z datové sady.sample
: První a poslední položky jsou zahrnuté a počet položek se stejnými intervaly mezi nimi. Pokud máte například datovou sadu [0, 1, 2, ... 100] a počet 9, dostanete hodnoty [0, 10, 20 ... 100].window
: Načte najednou jedno okno datových bodů obsahující určitý počet elementů (určený hodnotou count). Momentálně jsou typytop
awindow
ekvivalentní. Pracujeme na zajištění plné podpory pro vytváření oken.
Ve výchozím nastavení se u všech vizuálů Power BI používá algoritmus redukce dat typu top s hodnotou count nastavenou na 1000 datových bodů. To je ekvivalentní nastavení následujících vlastností v souboru capabilities.json :
"dataReductionAlgorithm": {
"top": {
"count": 1000
}
}
Hodnotu count můžete změnit na libovolnou celočíselnou hodnotu až do výše 30 000. Vizuály Power BI založené na jazyce R můžou podporovat až 150 000 řádků.
Použití algoritmu redukce dat
Algoritmus redukce dat lze použít u kategorického, tabulkového nebo maticového mapování zobrazení dat.
V mapování kategorických dat můžete přidat algoritmus do části values
"kategorie" a/nebo "seskupit" pro mapování dat kategorií.
"dataViewMappings": {
"categorical": {
"categories": {
"for": { "in": "category" },
"dataReductionAlgorithm": {
"window": {
"count": 300
}
}
},
"values": {
"group": {
"by": "series",
"select": [{
"for": {
"in": "measure"
}
}
],
"dataReductionAlgorithm": {
"top": {
"count": 100
}
}
}
}
}
}
V mapování zobrazení dat tabulky použijte algoritmus redukce dat do rows
oddílu tabulky mapování zobrazení dat.
"dataViewMappings": [
{
"table": {
"rows": {
"for": {
"in": "values"
},
"dataReductionAlgorithm": {
"top": {
"count": 2000
}
}
}
}
}
]
Algoritmus redukce dat můžete použít v oddílech rows
a columns
matice mapování zobrazení dat.