React Sankey - Customize Labels
NOTE
You can use the customizeText function to change the labels' text. Its argument contains a Node object that provides information about the node being customized. The function should return a string value that will be used as a label's text.
In the following example, the customizeText function is used to add incoming and outgoing weight values to the label:
jQuery
JavaScript
$(function() { var weightsReducer = function(accumulator, currentValue) { return accumulator + currentValue.weight; } $("#sankeyContainer").dxSankey({ // ... label: { customizeText: function(node) { return node.title + " (in: " + node.linksIn.reduce(weightsReducer, 0) + ", " + "out: " + node.linksOut.reduce(weightsReducer, 0) + ")"; } } }); });
Angular
TypeScript
HTML
import { DxSankeyModule } from "devextreme-angular"; // ... export class AppComponent { constructor() { this.sankey_label_customizeText = this.sankey_label_customizeText.bind(this); } weightsReducer(accumulator, currentValue) { return accumulator + currentValue.weight; } sankey_label_customizeText(node) { return node.title + " (in: " + node.linksIn.reduce(this.weightsReducer, 0) + ", " + "out: " + node.linksOut.reduce(this.weightsReducer, 0) + ")"; } } @NgModule({ imports: [ // ... DxSankeyModule ], // ... })
<dx-sankey ... > <dxi-series> <dxo-label [customizeText]="sankey_label_customizeText"> </dxo-label> </dxi-series> </dx-sankey>
Vue
App.vue
<template> <DxSankey ... > <DxLabel :customize-text="customizeText" /> </DxSankey> </template> <script> import DxSankey, { DxLabel } from 'devextreme-vue/sankey'; const weightsReducer = (accumulator, currentValue) => { return accumulator + currentValue.weight; } export default { components: { DxSankey, DxLabel }, methods: { customizeText(node) { return `${node.title} (in: ${node.linksIn.reduce(weightsReducer, 0)}, out: ${node.linksOut.reduce(weightsReducer, 0)})`; } } } </script>
React
App.js
import React from 'react'; import Sankey, { Label } from 'devextreme-react/sankey'; const weightsReducer = (accumulator, currentValue) => { return accumulator + currentValue.weight; } class App extends React.Component { render() { return ( <Sankey ... > <Label customizeText={this.customizeText} /> </Sankey> ) } customizeText(node) { return `${node.title} (in: ${node.linksIn.reduce(weightsReducer, 0)}, out: ${node.linksOut.reduce(weightsReducer, 0)})`; } } export default App;
See Also
Feel free to share topic-related thoughts here.
If you have technical questions, please create a support ticket in the DevExpress Support Center.
Thank you for the feedback!
If you have technical questions, please create a support ticket in the DevExpress Support Center.