MENU
.net Powerful JavaScript charts

How to make your line clickable

A guide for making the whole line clickable with the Poly object - not just the points along that line. The Key is then highlighted as well.

Here's an example of a Line chart with a key - but instead of the key itself being interactive you can click on the lines to then highlight them and the relevant key entry.

Previously a fair amount of custom code was used to add the highlight but that code has now been incorporated into the Line chart library so you now just have to add a single configuration property to your code.

There's a demo page included in the download archive that demonstrates this to the full called line-tooltips-dataset.html

The code for the chart is shown below.

<script src="/libraries/RGraph.common.dynamic.js"></script>
<script src="/libraries/RGraph.common.key.js"></script>
<script src="/libraries/RGraph.line.js"></script>
<script src="/libraries/RGraph.common.tooltips.js"></script>
<canvas id="cvs" width="700" height="300">[No canvas support]</canvas>
<script>
    new RGraph.Line({
        id:'cvs',
        data: [
            [4,5,8,7,6,4,3],
            [7,1,6,9,4,6,5],
            [8,4,6,5,9,9,8]
        ],
        options: {
            
            // Some custom properties that are used in the
            // tooltips
            values: [58.3,42.5,62.7],
            names: ['Bob','David','Gary'],
            
            tooltipsDataset: '<span style="font-style: italic">Results for <b>%{property:names[%{dataset}]}</b>:</span><br /><span style="font-size: 30pt">%{property:values[%{dataset}]}%</span>',
            xaxisLabels: ['Mon','Tue','Wed','Thu','Fri','Sat','Sun'],
            marginBottom: 35,
            linewidth: 2,
            title: 'A Line chart with dataset tooltips',
            titleSize: 16,
            spline: true,
            tickmarksStyle: 'endcircle',
            tickmarksSize: 5,
            key: ['Bob','David','Gary'],
            keyBackground: 'white',
            events: {
                tooltip: function (obj)
                {
                    // You can get the dataset index and the coordinates
                    // of the key entry by using these properties. This
                    // also fetches the appropriate color from the RGraph
                    // object properties (using the index).
                    //
                    // If you're not bothered about highlighting the key
                    // then you can omit this entire ontooltip event
            
                    var index  = obj.tooltipsDatasetIndex;
                    var coords = obj.coords.key[index];
                    var color  = obj.get('colors')[index];
            
                    // Draw a semi-opaque rectangle around the
                    // relevant key entry
                    obj.path(
                        'ga 0.25 b r % % % % f % ga 1',
                        coords[0], coords[1],
                        coords[2], coords[3],
                        color
                    );
                }
            }
        }
    }).draw();
</script>