UNPKG

jqwidgets-framework

Version:

jQWidgets is an advanced Angular, Vue, Blazor, React, Web Components, jquery, ASP .NET MVC, Custom Elements and HTML5 UI framework.

149 lines (126 loc) 6.73 kB
<!DOCTYPE html> <html lang="en"> <head> <title id='Description'>JavaScript Chart logarithmic axis offset example</title> <meta name="description" content="This is an example of JavaScript Chart logarithmic axis offset to value mapping." /> <meta name="keywords" content="jqwidgets charts, jquery charts, javascript charts, ajax charts, graphs, plots, line charts, bar charts, pie charts, javascript plots, ajax plots" /> <link rel="stylesheet" href="../../../jqwidgets/styles/jqx.base.css" type="text/css" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1 minimum-scale=1" /> <script type="text/javascript" src="../../../scripts/jquery-1.12.4.min.js"></script> <script type="text/javascript" src="../../../jqwidgets/jqxcore.js"></script> <script type="text/javascript" src="../../../jqwidgets/jqxdata.js"></script> <script type="text/javascript" src="../../../jqwidgets/jqxdraw.js"></script> <script type="text/javascript" src="../../../jqwidgets/jqxchart.core.js"></script> <script type="text/javascript" src="../../../scripts/demos.js"></script> <script type="text/javascript"> $(document).ready(function () { var sampleData = [ { a: 1.1535, b: 0.5 }, { a: 4.48, b: 20.5 }, { a: 10, b: 60 }, { a: 100, b: 80 }, { a: 200, b: 90 }, { a: 245.11, b: 100.13 }, { a: 300.13, b: 150.13 }, { a: 340, b: 200 } ]; var settings = { title: "Logarithmic Scale Offset to Value Mappying", description: "Move the mouse to see the respective x and y values", padding: { left: 15, top: 5, right: 15, bottom: 5 }, titlePadding: { left: 0, top: 0, right: 0, bottom: 10 }, source: sampleData, enableAnimations: true, xAxis: { dataField: 'a', logarithmicScale: true, logarithmicScaleBase: 2, valuesOnTicks: true }, valueAxis: { padding: { right: 0 }, flip: false, logarithmicScale: true, logarithmicScaleBase: 2, title: { text: 'Value' }, labels: { horizontalAlignment: 'right' } }, seriesGroups: [ { type: 'line', radius: 200, series: [ { dataField: 'a', displayText: 'A', symbolType: 'square', symbolSize: 6, dashStyle: '4,4', lineWidth: 1 }, { dataField: 'b', displayText: 'B', symbolType: 'circle', symbolSize: 6, lineWidth: 1 } ] } ] }; $('#chartContainer').jqxChart(settings); var instance = $('#chartContainer').jqxChart('getInstance'); function cursorPositionRelativeToChart(event) { // get the x/y coordinates of the mouse cursor relative to the chart element var x = event.pageX || event.clientX || event.screenX; var y = event.pageY || event.clientY || event.screenY; var pos = $('#chartContainer').offset(); if (self._isTouchDevice) { var cursorPos = $.jqx.position(event); x = cursorPos.left; y = cursorPos.top; } x -= pos.left; y -= pos.top; return { x: x, y: y }; } var cursorRedDotElement = null; $('#chartContainer').on('mousemove', function (event) { var position = cursorPositionRelativeToChart(event); // get the xAxis value var xvalue = instance.getXAxisValue(position.x, 0); // get the valueAxis value var yvalue = instance.getValueAxisValue(position.y, 0); // prepare event data text var eventData = "x: " + position.x + "; y: " + position.y + "; xValue: " + xvalue + "; yValue: " + yvalue; // display the event data text $('#eventText').html(eventData); // display a small dot at the cursor position var renderer = instance.renderer; if (cursorRedDotElement) renderer.attr(cursorRedDotElement, { cx: position.x, cy: position.y }); else cursorRedDotElement = renderer.circle(position.x, position.y, 1, { fill: 'red', stroke: 'red' }); }); // add click event handler $('#chartContainer').on('click', function (event) { var position = cursorPositionRelativeToChart(event); // get the xAxis value var xvalue = instance.getXAxisValue(position.x, 0); // get the valueAxis value var yvalue = instance.getValueAxisValue(position.y, 0); // prepare event data text var eventData = "x: " + position.x + "; y: " + position.y + "; xValue: " + xvalue + "; yValue: " + yvalue; alert(eventData); }); }); </script> </head> <body> <div id='chartContainer' style="width:800px; height: 500px;"></div> <br /> <div id='eventText' style="width:600px; height: 30px"></div> <div class="example-description"> <br /> <h2>Description</h2> <br /> This is an example of JavaScript Chart logarithmic axis offset to value mapping. You can see how to get the x/y coordinates of the mouse cursor relative to the chart element. You can also see how to get the xAxis and the valueAxis values and how to display a small dot at the cursor position. </div> <div style="position: absolute; bottom: 5px; right: 5px;"> <a href="https://www.jqwidgets.com/" alt="https://www.jqwidgets.com/"><img alt="https://www.jqwidgets.com/" title="https://www.jqwidgets.com/" src="https://www.jqwidgets.com/wp-content/design/i/logo-jqwidgets.png"/></a> </div> </body> </html>