Available in the Full Version
Shape Chart - Chart Types - Polygon
This sample demonstrates the Polygon chart type available in the ShapeChart control.
This sample uses CTP (Community Technical Preview) features. The API and behavior may change when these features are released with full support.
This sample is designed for a larger screen size.
On mobile, try rotating your screen, view full size, or email to another device.
Code View
Copy to Clipboard
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Polygon Series</title> <!-- Ignite UI for jQuery Required Combined CSS Files --> <link href="http://cdn-na.infragistics.com/igniteui/2024.1/latest/css/themes/infragistics/infragistics.theme.css" rel="stylesheet" /> <link href="http://cdn-na.infragistics.com/igniteui/2024.1/latest/css/structure/infragistics.css" rel="stylesheet" /> <script src="http://ajax.aspnetcdn.com/ajax/modernizr/modernizr-2.8.3.js"></script> <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script> <script src="http://code.jquery.com/ui/1.11.1/jquery-ui.min.js"></script> <!-- Ignite UI for jQuery Required Combined JavaScript Files --> <script src="http://cdn-na.infragistics.com/igniteui/2024.1/latest/js/infragistics.core.js"></script> <script src="http://cdn-na.infragistics.com/igniteui/2024.1/latest/js/infragistics.dv.js"></script> </head> <body> <div id="chart"></div> <!-- template for custom tooltip --> <script id="customTooltip" type="text/x-jquery-tmpl"> <table id="tooltipTable" style="background: white;"> <tr> <th colspan="2">${item.Label}</th> </tr> <tr> <td>Width: ${item.Width} m</td> </tr> <tr> <td>Height: ${item.Height} m</td> </tr> <tr> <td>Area: ${item.Area} m</td> </tr> </table> </script> <script type="text/javascript"> (function () { $("#chart").igShapeChart({ width: "98%", height: "550px", title: "Home Floor Plan", dataSource: createRoomData(), chartType: "polygon", brushes: ["#1C6ABB"], outlines: ["#084482"], isHorizontalZoomEnabled: true, isVerticalZoomEnabled: true, toolTipType: "default", tooltipTemplate: "customTooltip", // customizing marker template on seriesAdded event seriesAdded: function (evt, args) { args.series.title = "Rooms"; args.series.markerTemplate = { render: function (renderInfo) { renderInfo.context.font = "16px serif"; renderInfo.context.fillStyle = "white"; renderInfo.context.textAlign = "center"; renderInfo.context.fillText(renderInfo.data.item().Label, renderInfo.xPosition, renderInfo.yPosition); } } } }); $("#chart").igShapeChart({ yAxisFormatLabel: function (value) { return value + " m"; }, xAxisFormatLabel: function (value) { return value + " m"; }, xAxisMinimumValue: -2, xAxisMaximumValue: 12, yAxisMinimumValue: -2, yAxisMaximumValue: 12, //xAxisMajorStrokeThickness: 0, //yAxisMajorStrokeThickness: 0, }); function createRoomData() { var shapes = [ { "Label": "Hallway", "Points": [[ { x: 6, y: 0 }, { x: 6, y: 7 }, { x: 4, y: 7 }, { x: 4, y: 0 }, ]] }, { "Label": "Entrance", "Points": [[ { x: 0, y: 5 }, { x: 4, y: 5 }, { x: 4, y: 7 }, { x: 0, y: 7 }, ]] }, { "Label": "Guest Bedroom", "Points": [[{ x: 2, y: 10 }, { x: 7, y: 10 }, { x: 7, y: 7 }, { x: 2, y: 7 }], ] }, { "Label": "Bathroom", "Points": [[{ x: 0, y: 10 }, { x: 2, y: 10 }, { x: 2, y: 7 }, { x: 0, y: 7 }], ] }, { "Label": "Kitchen", "Points": [[{ x: 6, y: 7 }, { x: 10, y: 7 }, { x: 10, y: 4 }, { x: 6, y: 4 }], ] }, { "Label": "Living Room", "Points": [[{ x: 6, y: 4 }, { x: 10, y: 4 }, { x: 10, y: 0 }, { x: 6, y: 0 }], ] }, { "Label": "Master Bedroom", "Points": [[{ x: 0, y: 0 }, { x: 4, y: 0 }, { x: 4, y: 5 }, { x: 0, y: 5 }], ] }, ]; // optional code to calculate dimensions of all shapes for (i = 0; i < shapes.length; i++) { var xMin = 1000; var yMin = 1000; var xMax = 0; var yMax = 0; for (p = 0; p < shapes[i].Points[0].length; p++) { var point = shapes[i].Points[0][p]; xMin = Math.min(xMin, point.x); yMin = Math.min(yMin, point.y); xMax = Math.max(xMax, point.x); yMax = Math.max(yMax, point.y); } shapes[i].PointsCount = shapes[i].Points[0].length; shapes[i].Width = Math.abs(xMax - xMin); shapes[i].Height = Math.abs(yMax - yMin); shapes[i].Area = shapes[i].Width * shapes[i].Height; shapes[i].AreaStr = shapes[i].Area.toFixed(2); } return shapes; }; })(); </script> </body> </html>