Search results

Tooltip in React TreeMap component

03 Dec 2021 / 3 minutes to read

Tooltip is used to display details about the items in the TreeMap. When space constraints prevent us from displaying the information using Data Labels, the tooltip comes in handy.

Default tooltip

The tooltip is not visible by default, to make it visible, set the visible property in the tooltipSettings to true and injecting the TreeMapTooltip module.

<<<<<<

Source
Preview
index.tsx
index.jsx
Copied to clipboard
import * as React from "react";
import * as ReactDOM from "react-dom";
import { TreeMapComponent, Inject, TreeMapTooltip } from '@syncfusion/ej2-react-treemap';

class App extends React.Component {
render() {
  return ( <TreeMapComponent id='treemap'
        dataSource={[
            { fruit:'Apple', count:5000 },
            { fruit:'Mango', count:3000 },
            { fruit:'Orange', count:2300 },
            { fruit:'Banana', count:500 },
            { fruit:'Grape', count:4300 },
            { fruit:'Papaya', count:1200 },
            { fruit:'Melon', count:4500 }
        ]}
        weightValuePath= 'count'
        leafItemSettings= {{
            labelPath: 'fruit'
        }}
        tooltipSettings= {{
            visible: true
        }}>
        <Inject services={[TreeMapTooltip]} />
    </TreeMapComponent> );
 }
}
ReactDOM.render(<App />, document.getElementById('treemap'));
Copied to clipboard
import * as React from "react";
import * as ReactDOM from "react-dom";
import { TreeMapComponent, Inject, TreeMapTooltip } from '@syncfusion/ej2-react-treemap';
class App extends React.Component {
    render() {
        return (<TreeMapComponent id='treemap' dataSource={[
            { fruit: 'Apple', count: 5000 },
            { fruit: 'Mango', count: 3000 },
            { fruit: 'Orange', count: 2300 },
            { fruit: 'Banana', count: 500 },
            { fruit: 'Grape', count: 4300 },
            { fruit: 'Papaya', count: 1200 },
            { fruit: 'Melon', count: 4500 }
        ]} weightValuePath='count' leafItemSettings={{
            labelPath: 'fruit'
        }} tooltipSettings={{
            visible: true
        }}>
        <Inject services={[TreeMapTooltip]}/>
    </TreeMapComponent>);
    }
}
ReactDOM.render(<App />, document.getElementById('treemap'));

Format tooltip

The tooltip content is displayed by default based on the weightValuePath. In addition, to show more information in the tooltip, use the format property and define field from the data source as ${datafield}.

Source
Preview
index.tsx
index.jsx
Copied to clipboard
import * as React from "react";
import * as ReactDOM from "react-dom";
import { TreeMapComponent, Inject, TreeMapTooltip } from '@syncfusion/ej2-react-treemap';

class App extends React.Component {
render() {
  return ( <TreeMapComponent id='treemap'
        dataSource={[
            { fruit:'Apple', count:5000 },
            { fruit:'Mango', count:3000 },
            { fruit:'Orange', count:2300 },
            { fruit:'Banana', count:500 },
            { fruit:'Grape', count:4300 },
            { fruit:'Papaya', count:1200 },
            { fruit:'Melon', count:4500 }
        ]}
        weightValuePath= 'count'
        leafItemSettings= {{
            labelPath: 'fruit'
        }}
        tooltipSettings= {{
            visible: true,
            format:'Name:${fruit} - TotalCount:${count}'
        }}>
        <Inject services={[TreeMapTooltip]} />
    </TreeMapComponent> );
 }
}
ReactDOM.render(<App />, document.getElementById('treemap'));
Copied to clipboard
import * as React from "react";
import * as ReactDOM from "react-dom";
import { TreeMapComponent, Inject, TreeMapTooltip } from '@syncfusion/ej2-react-treemap';
class App extends React.Component {
    render() {
        return (<TreeMapComponent id='treemap' dataSource={[
            { fruit: 'Apple', count: 5000 },
            { fruit: 'Mango', count: 3000 },
            { fruit: 'Orange', count: 2300 },
            { fruit: 'Banana', count: 500 },
            { fruit: 'Grape', count: 4300 },
            { fruit: 'Papaya', count: 1200 },
            { fruit: 'Melon', count: 4500 }
        ]} weightValuePath='count' leafItemSettings={{
            labelPath: 'fruit'
        }} tooltipSettings={{
            visible: true,
            format: 'Name:${fruit} - TotalCount:${count}'
        }}>
        <Inject services={[TreeMapTooltip]}/>
    </TreeMapComponent>);
    }
}
ReactDOM.render(<App />, document.getElementById('treemap'));

Tooltip template

Tooltip can be rendered as a custom component using the template property in the tooltipSettings which accepts one or more UI elements as an input, that can be rendered as a part of the tooltip rendering. You can use ${datafield} as placeholder in HTML element to display the values from data source.

Source
Preview
index.tsx
index.jsx
Copied to clipboard
import * as React from "react";
import * as ReactDOM from "react-dom";
import { TreeMapComponent, Inject, TreeMapTooltip } from '@syncfusion/ej2-react-treemap';

class App extends React.Component {
render() {
  return ( <TreeMapComponent id='treemap'
        dataSource={[
            { fruit:'Apple', count:5000 },
            { fruit:'Mango', count:3000 },
            { fruit:'Orange', count:2300 },
            { fruit:'Banana', count:500 },
            { fruit:'Grape', count:4300 },
            { fruit:'Papaya', count:1200 },
            { fruit:'Melon', count:4500 }
        ]}
        weightValuePath= 'count'
        leafItemSettings= {{
            labelPath: 'fruit'
        }}
        tooltipSettings= {{
            visible: true,
            template:'<div><p>Name: ${fruit}</p><p>Total Count: ${count}</p></div>'
        }}>
        <Inject services={[TreeMapTooltip]} />
    </TreeMapComponent> );
 }
}
ReactDOM.render(<App />, document.getElementById('treemap'));
Copied to clipboard
import * as React from "react";
import * as ReactDOM from "react-dom";
import { TreeMapComponent, Inject, TreeMapTooltip } from '@syncfusion/ej2-react-treemap';
class App extends React.Component {
    render() {
        return (<TreeMapComponent id='treemap' dataSource={[
            { fruit: 'Apple', count: 5000 },
            { fruit: 'Mango', count: 3000 },
            { fruit: 'Orange', count: 2300 },
            { fruit: 'Banana', count: 500 },
            { fruit: 'Grape', count: 4300 },
            { fruit: 'Papaya', count: 1200 },
            { fruit: 'Melon', count: 4500 }
        ]} weightValuePath='count' leafItemSettings={{
            labelPath: 'fruit'
        }} tooltipSettings={{
            visible: true,
            template: '<div><p>Name: ${fruit}</p><p>Total Count: ${count}</p></div>'
        }}>
        <Inject services={[TreeMapTooltip]}/>
    </TreeMapComponent>);
    }
}
ReactDOM.render(<App />, document.getElementById('treemap'));