$(() => {
const oilOptions = {
dataSource: oilCosts,
argumentField: 'month',
valueField: '2010',
type: 'line',
showMinMax: true,
tooltip: {
format: 'currency',
},
};
const goldOptions = {
dataSource: goldCosts,
argumentField: 'month',
valueField: '2010',
type: 'spline',
lineWidth: 3,
lineColor: '#9ab57e',
minColor: '#6babac',
maxColor: '#ebdd8f',
showMinMax: true,
showFirstLast: false,
tooltip: {
format: 'currency',
},
};
const silverOptions = {
dataSource: silverCosts,
argumentField: 'month',
valueField: '2010',
lineColor: '#e8c267',
firstLastColor: '#e55253',
pointSize: 6,
pointSymbol: 'square',
pointColor: '#ebdd8f',
type: 'stepline',
tooltip: {
format: 'currency',
},
};
$('.line2010').dxSparkline(oilOptions);
$('.spline2010').dxSparkline(goldOptions);
$('.stepline2010').dxSparkline(silverOptions);
$('.line2011').dxSparkline($.extend(oilOptions, { valueField: '2011' }));
$('.spline2011').dxSparkline($.extend(goldOptions, { valueField: '2011' }));
$('.stepline2011').dxSparkline($.extend(silverOptions, { valueField: '2011' }));
$('.line2012').dxSparkline($.extend(oilOptions, { valueField: '2012' }));
$('.spline2012').dxSparkline($.extend(goldOptions, { valueField: '2012' }));
$('.stepline2012').dxSparkline($.extend(silverOptions, { valueField: '2012' }));
});
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>DevExtreme Demo</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>window.jQuery || document.write(decodeURIComponent('%3Cscript src="js/jquery.min.js"%3E%3C/script%3E'))</script>
<link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/23.1.5/css/dx.light.css" />
<script src="https://cdn3.devexpress.com/jslib/23.1.5/js/dx.all.js"></script>
<script src="data.js"></script>
<link rel="stylesheet" type="text/css" href="styles.css" />
<script src="index.js"></script>
</head>
<body class="dx-viewport">
<div class="demo-container">
<div class="long-title"><h3>Monthly Prices of Oil, Gold and Silver</h3></div>
<div id="chart-demo">
<table class="demo-table">
<tr>
<th></th>
<th>Oil (USD/barrel)</th>
<th>Gold (USD/troy ounce)</th>
<th>Silver (USD/troy ounce)</th>
</tr>
<tr>
<th>2010</th>
<td><div class="sparkline line2010"></div></td>
<td><div class="sparkline spline2010"></div></td>
<td><div class="sparkline stepline2010"></div></td>
</tr>
<tr>
<th>2011</th>
<td><div class="sparkline line2011"></div></td>
<td><div class="sparkline spline2011"></div></td>
<td><div class="sparkline stepline2011"></div></td>
</tr>
<tr>
<th>2012</th>
<td><div class="sparkline line2012"></div></td>
<td><div class="sparkline spline2012"></div></td>
<td><div class="sparkline stepline2012"></div></td>
</tr>
</table>
</div>
</div>
</body>
</html>
#chart-demo {
height: 440px;
}
.demo-table {
width: 100%;
border: 1px solid #c2c2c2;
border-collapse: collapse;
}
.demo-table th,
.demo-table td {
font-weight: 400;
width: 200px;
padding: 25px 10px 5px 10px;
border: 1px solid #c2c2c2;
}
.demo-table th {
padding: 25px 15px 20px 15px;
border: 1px solid #c2c2c2;
}
.demo-table tr:nth-child(2) td {
border-top: 1px solid #c2c2c2;
}
.demo-table td:first-of-type {
border-left: 1px solid #c2c2c2;
}
.demo-table .sparkline {
width: 200px;
height: 30px;
}
.long-title h3 {
font-weight: 200;
font-size: 28px;
text-align: center;
margin-bottom: 20px;
margin-top: 0;
}
const oilCosts = [{
month: 1,
2010: 77,
2011: 93,
2012: 107,
}, {
month: 2,
2010: 72,
2011: 101,
2012: 112,
}, {
month: 3,
2010: 79,
2011: 115,
2012: 123,
}, {
month: 4,
2010: 82,
2011: 116,
2012: 123,
}, {
month: 5,
2010: 86,
2011: 124,
2012: 116,
}, {
month: 6,
2010: 73,
2011: 115,
2012: 102,
}, {
month: 7,
2010: 73,
2011: 110,
2012: 94,
}, {
month: 8,
2010: 77,
2011: 117,
2012: 105,
}, {
month: 9,
2010: 76,
2011: 113,
2012: 113,
}, {
month: 10,
2010: 81,
2011: 103,
2012: 111,
}, {
month: 11,
2010: 83,
2011: 110,
2012: 107,
}, {
month: 12,
2010: 89,
2011: 109,
2012: 110,
}];
const goldCosts = [{
month: 1,
2010: 1115,
2011: 1358,
2012: 1661,
}, {
month: 2,
2010: 1099,
2011: 1375,
2012: 1742,
}, {
month: 3,
2010: 1114,
2011: 1423,
2012: 1677,
}, {
month: 4,
2010: 1150,
2011: 1486,
2012: 1650,
}, {
month: 5,
2010: 1205,
2011: 1511,
2012: 1589,
}, {
month: 6,
2010: 1235,
2011: 1529,
2012: 1602,
}, {
month: 7,
2010: 1193,
2011: 1573,
2012: 1593,
}, {
month: 8,
2010: 1220,
2011: 1765,
2012: 1634,
}, {
month: 9,
2010: 1272,
2011: 1771,
2012: 1750,
}, {
month: 10,
2010: 1345,
2011: 1672,
2012: 1745,
}, {
month: 11,
2010: 1370,
2011: 1741,
2012: 1720,
}, {
month: 12,
2010: 1392,
2011: 1643,
2012: 1684,
}];
const silverCosts = [{
month: 1,
2010: 17,
2011: 30,
2012: 27,
}, {
month: 2,
2010: 28,
2011: 28,
2012: 33,
}, {
month: 3,
2010: 34,
2011: 34,
2012: 35,
}, {
month: 4,
2010: 37,
2011: 37,
2012: 32,
}, {
month: 5,
2010: 47,
2011: 47,
2012: 30,
}, {
month: 6,
2010: 37,
2011: 37,
2012: 28,
}, {
month: 7,
2010: 34,
2011: 34,
2012: 27,
}, {
month: 8,
2010: 40,
2011: 40,
2012: 27,
}, {
month: 9,
2010: 41,
2011: 41,
2012: 31,
}, {
month: 10,
2010: 30,
2011: 30,
2012: 34,
}, {
month: 11,
2010: 34,
2011: 34,
2012: 31,
}, {
month: 12,
2010: 32,
2011: 32,
2012: 33,
}];