dygraphs
Version:
dygraphs is a fast, flexible open source JavaScript charting library.
87 lines (79 loc) • 2.47 kB
HTML
<html>
<head>
<meta charset="UTF-8">
<title>legendFormatter</title>
<link rel="stylesheet" type="text/css" href="../dist/dygraph.css" />
<link rel="stylesheet" type="text/css" href="../common/vextlnk.css" />
<script type="text/javascript" src="../dist/dygraph.js"></script>
<style>
#demodiv {
width: 640px;
height: 480px;
display: inline-block;
vertical-align: top;
}
#legend {
display: inline-block;
vertical-align: top;
}
</style>
</head>
<body>
<h2>legendFormatter</h2>
<p>This page demonstrates use of <a href="../options.html#legendFormatter"><code>legendFormatter</code></a>, which can be used to create more complex legends than <code>valueFormatter</code>.</p>
<div id="demodiv"></div>
<div id="legend"></div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
Dygraph.onDOMready(function onDOMready() {
function legendFormatter(data) {
if (data.x == null) {
// This happens when there's no selection and {legend: 'always'} is set.
return '<br>' + data.series.map(function(series) { return series.dashHTML + ' ' + series.labelHTML }).join('<br>');
}
var html = this.getLabels()[0] + ': ' + data.xHTML;
data.series.forEach(function(series) {
if (!series.isVisible) return;
var labeledData = series.labelHTML + ': ' + series.yHTML;
if (series.isHighlighted) {
labeledData = '<b>' + labeledData + '</b>';
}
html += '<br>' + series.dashHTML + ' ' + labeledData;
});
return html;
}
new Dygraph(
document.getElementById("demodiv"),
function() {
var zp = function(x) { if (x < 10) return "0"+x; else return x; };
var r = "date,parabola,line,another line,sine wave\n";
for (var i=1; i<=31; i++) {
r += "2006-10-" + zp(i);
r += "," + 10*(i*(31-i));
r += "," + 10*(8*i);
r += "," + 10*(250 - 8*i);
r += "," + 10*(125 + 125 * Math.sin(0.3*i));
r += "\n";
}
return r;
},
{
labelsDiv: document.getElementById('status'),
labelsKMB: true,
colors: ["rgb(51,204,204)",
"rgb(255,100,100)",
"#00DD55",
"rgba(50,50,200,0.4)"],
title: 'Interesting Shapes',
xlabel: 'Date',
ylabel: 'Count',
highlightSeriesOpts: { strokeWidth: 2 },
labelsDiv: document.getElementById('legend'),
legend: 'always',
legendFormatter: legendFormatter
}
);
});
//--><!]]></script>
</body>
</html>