ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ Β«SankeyΒ»
ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ sankey.js Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° Π² ΠΏΠ°ΠΏΠΊΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡΒ /docker-volume/dashboard-viewer/customjs.
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Dashboard Designer.
ΠΠ° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΡΒ», Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β«Π‘ΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉΒ».
Π ΠΎΡΠΊΡΡΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π²Π²Π΅Π΄ΠΈΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄Π»Ρ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°.
Π ΠΏΠΎΠ»Π΅ Β«ΠΠΎΠ΄ Π²ΠΈΠ΄ΠΆΠ΅Ρ (JavaScript)Β» Π²ΡΡΠ°Π²ΡΡΠ΅ ΠΊΠΎΠ΄ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°:
Highcharts.chart('container', { title: { text: 'Highcharts Sankey Diagram' }, series: [{ keys: ['from', 'to', 'weight'], data: [ ['Brazil', 'Portugal', 5], ['Brazil', 'France', 1], ['Brazil', 'Spain', 1], ['Brazil', 'England', 1], ['Canada', 'Portugal', 1], ['Canada', 'France', 5], ['Canada', 'England', 1], ['Mexico', 'Portugal', 1], ['Mexico', 'France', 1], ['Mexico', 'Spain', 5], ['Mexico', 'England', 1], ['USA', 'Portugal', 1], ['USA', 'France', 1], ['USA', 'Spain', 1], ['USA', 'England', 5], ['Portugal', 'Angola', 2], ['Portugal', 'Senegal', 1], ['Portugal', 'Morocco', 1], ['Portugal', 'South Africa', 3], ['France', 'Angola', 1], ['France', 'Senegal', 3], ['France', 'Mali', 3], ['France', 'Morocco', 3], ['France', 'South Africa', 1], ['Spain', 'Senegal', 1], ['Spain', 'Morocco', 3], ['Spain', 'South Africa', 1], ['England', 'Angola', 1], ['England', 'Senegal', 1], ['England', 'Morocco', 2], ['England', 'South Africa', 7], ['South Africa', 'China', 5], ['South Africa', 'India', 1], ['South Africa', 'Japan', 3], ['Angola', 'China', 5], ['Angola', 'India', 1], ['Angola', 'Japan', 3], ['Senegal', 'China', 5], ['Senegal', 'India', 1], ['Senegal', 'Japan', 3], ['Mali', 'China', 5], ['Mali', 'India', 1], ['Mali', 'Japan', 3], ['Morocco', 'China', 5], ['Morocco', 'India', 1], ['Morocco', 'Japan', 3] ], type: 'sankey', name: 'Sankey demo series' }] });
Β
Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π° Π·Π°ΠΌΠ΅Π½ΠΈΡΡ 'container' Π½Π° w.general.renderTo:
Highcharts.chart(w.general.renderTo, { β¦
Β
ΠΠ΅ΡΠ΅Π΄ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ data ΠΈ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΡ Ρ OLAP:
var data = w.data.rows.map(function (row, i) { return [ row[0], row[1], w.data.values[0][i] ] });
Β
Π ΡΡΡΠΎΠΊΠ΅ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° data, Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² Π½Π° ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ data:
Β
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° text Ρ 'Highcharts Sankey Diagram' Π½Π° w.props.titleName ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ²Π΅ΡΠ° ΡΠ΅ΠΊΡΡΠ° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° style: {color: w.props.color}:
Π ΠΏΠΎΠ»Π΅ Β«Π‘Π²ΠΎΠΉΡΡΠ²Π° Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° (JSON)Β» Π²ΡΡΠ°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
Β
ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β«Π‘ΠΎΠ·Π΄Π°ΡΡΒ».
Π ΠΏΠ°Π»ΠΈΡΡΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π²Π°ΠΌΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ.
Π ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ΅ Π΄Π°Π½Π½ΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° ΡΠΊΠ°Π·Π°ΡΡ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ OLAP ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠ°.
ΠΡΠΈΠΌΠ΅Ρ:
ΠΡΡΠΏΠΏΠ° ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ β Π·Π°ΡΠ°Π±ΠΎΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ°;
ΠΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ β ΠΡΠ΅ΠΌΠΈΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°;
ΠΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ β ΠΡΠ΄Π΅Π», ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΡ.
ΠΠΎΡΠ»Π΅ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡ Π΄Π°Π½Π½ΡΠ΅: