<!DOCTYPE HTML>
<html>

<head>
	<meta charset="UTF-8">
	<style>
		img {
			pointer-events: none;
		}
	</style>
	<script>
		window.onload = function () {

			var chart = new CanvasJS.Chart("chartContainer", {
				title: {
					text: "Weekly Weather Forecast"
				},
				axisY: {
					includeZero: false,
					suffix: " °C",
					maximum: 40,
					gridThickness: 0
				},
				toolTip: {
					shared: true,
					content: "{name} </br> <strong>Temperature: </strong> </br> Min: {y[0]} °C, Max: {y[1]} °C"
				},
				data: [{
					type: "rangeSplineArea",
					fillOpacity: 0.1,
					color: "#91AAB1",
					indexLabelFormatter: formatter,
					dataPoints: [{
							label: "Monday",
							y: [15, 26],
							name: "rainy"
						},
						{
							label: "Tuesday",
							y: [15, 27],
							name: "rainy"
						},
						{
							label: "Wednesday",
							y: [13, 27],
							name: "sunny"
						},
						{
							label: "Thursday",
							y: [14, 27],
							name: "sunny"
						},
						{
							label: "Friday",
							y: [15, 26],
							name: "cloudy"
						},
						{
							label: "Saturday",
							y: [17, 26],
							name: "sunny"
						},
						{
							label: "Sunday",
							y: [16, 27],
							name: "rainy"
						}
					]
				}]
			});
			chart.render();

			var images = [];

			addImages(chart);

			function addImages(chart) {
				for (var i = 0; i < chart.data[0].dataPoints.length; i++) {
					var dpsName = chart.data[0].dataPoints[i].name;
					if (dpsName == "cloudy") {
						images.push($("<img>").attr("src",
							"https://canvasjs.com/wp-content/uploads/images/gallery/gallery-overview/cloudy.png"));
					} else if (dpsName == "rainy") {
						images.push($("<img>").attr("src",
							"https://canvasjs.com/wp-content/uploads/images/gallery/gallery-overview/rainy.png"));
					} else if (dpsName == "sunny") {
						images.push($("<img>").attr("src",
							"https://canvasjs.com/wp-content/uploads/images/gallery/gallery-overview/sunny.png"));
					}

					images[i].attr("class", dpsName).appendTo($("#chartContainer>.canvasjs-chart-container"));
					positionImage(images[i], i);
				}
			}

			function positionImage(image, index) {
				var imageCenter = chart.axisX[0].convertValueToPixel(chart.data[0].dataPoints[index].x);
				var imageTop = chart.axisY[0].convertValueToPixel(chart.axisY[0].maximum);

				image.width("40px")
					.css({
						"left": imageCenter - 20 + "px",
						"position": "absolute",
						"top": imageTop + "px",
						"position": "absolute"
					});
			}

			$(window).resize(function () {
				var cloudyCounter = 0,
					rainyCounter = 0,
					sunnyCounter = 0;
				var imageCenter = 0;
				for (var i = 0; i < chart.data[0].dataPoints.length; i++) {
					imageCenter = chart.axisX[0].convertValueToPixel(chart.data[0].dataPoints[i].x) - 20;
					if (chart.data[0].dataPoints[i].name == "cloudy") {
						$(".cloudy").eq(cloudyCounter++).css({
							"left": imageCenter
						});
					} else if (chart.data[0].dataPoints[i].name == "rainy") {
						$(".rainy").eq(rainyCounter++).css({
							"left": imageCenter
						});
					} else if (chart.data[0].dataPoints[i].name == "sunny") {
						$(".sunny").eq(sunnyCounter++).css({
							"left": imageCenter
						});
					}
				}
			});

			function formatter(e) {
				if (e.index === 0 && e.dataPoint.x === 0) {
					return " Min " + e.dataPoint.y[e.index] + "°";
				} else if (e.index == 1 && e.dataPoint.x === 0) {
					return " Max " + e.dataPoint.y[e.index] + "°";
				} else {
					return e.dataPoint.y[e.index] + "°";
				}
			}

		}
	</script>
</head>

<body>
		<script src="../../asset/js/canvasjs/jquery-1.11.1.min.js"></script>
	<script src="../../asset/js/canvasjs/canvasjs.min.js"></script>
	<div id="chartContainer" style="height: 370px; max-width: 920px; margin: 0px auto;"></div>
</body>

</html>