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.