Plotters.js
资源名称:oa.rar [点击查看]
上传用户:kimgenplus
上传日期:2016-06-05
资源大小:20877k
文件大小:24k
源码类别:
OA系统
开发平台:
Java
- /*
- Copyright (c) 2004-2006, The Dojo Foundation
- All Rights Reserved.
- Licensed under the Academic Free License version 2.1 or above OR the
- modified BSD license. For more information on Dojo licensing, see:
- http://dojotoolkit.org/community/licensing.shtml
- */
- dojo.provide("dojo.charting.svg.Plotters");
- dojo.require("dojo.lang.common");
- if (dojo.render.svg.capable) {
- dojo.require("dojo.svg");
- dojo.mixin(dojo.charting.Plotters, {Bar:function (plotarea, plot, kwArgs, applyTo) {
- var area = plotarea.getArea();
- var group = document.createElementNS(dojo.svg.xmlns.svg, "g");
- var n = plot.series.length;
- var data = [];
- for (var i = 0; i < n; i++) {
- var tmp = plot.series[i].data.evaluate(kwArgs);
- data.push(tmp);
- }
- var space = 8;
- var nPoints = data[0].length;
- if (nPoints == 0) {
- return group;
- }
- var width = ((area.right - area.left) - (space * (nPoints - 1))) / nPoints;
- var barWidth = width / n;
- var yOrigin = plot.axisY.getCoord(plot.axisX.origin, plotarea, plot);
- for (var i = 0; i < nPoints; i++) {
- var xStart = area.left + (width * i) + (space * i);
- for (var j = 0; j < n; j++) {
- var value = data[j][i].y;
- var yA = yOrigin;
- var x = xStart + (barWidth * j);
- var y = plot.axisY.getCoord(value, plotarea, plot);
- var h = Math.abs(yA - y);
- if (value < plot.axisX.origin) {
- yA = y;
- y = yOrigin;
- }
- var bar = document.createElementNS(dojo.svg.xmlns.svg, "rect");
- bar.setAttribute("fill", data[j][i].series.color);
- bar.setAttribute("stroke-width", "0");
- bar.setAttribute("x", x);
- bar.setAttribute("y", y);
- bar.setAttribute("width", barWidth);
- bar.setAttribute("height", h);
- bar.setAttribute("fill-opacity", "0.6");
- if (applyTo) {
- applyTo(bar, data[j][i].src);
- }
- group.appendChild(bar);
- }
- }
- return group;
- }, HorizontalBar:function (plotarea, plot, kwArgs, applyTo) {
- var area = plotarea.getArea();
- var group = document.createElementNS(dojo.svg.xmlns.svg, "g");
- var n = plot.series.length;
- var data = [];
- for (var i = 0; i < n; i++) {
- var tmp = plot.series[i].data.evaluate(kwArgs);
- data.push(tmp);
- }
- var space = 6;
- var nPoints = data[0].length;
- if (nPoints == 0) {
- return group;
- }
- var h = ((area.bottom - area.top) - (space * (nPoints - 1))) / nPoints;
- var barH = h / n;
- var xOrigin = plot.axisX.getCoord(0, plotarea, plot);
- for (var i = 0; i < nPoints; i++) {
- var yStart = area.top + (h * i) + (space * i);
- for (var j = 0; j < n; j++) {
- var value = data[j][i].y;
- var y = yStart + (barH * j);
- var xA = xOrigin;
- var x = plot.axisX.getCoord(value, plotarea, plot);
- var w = Math.abs(x - xA);
- if (value > 0) {
- x = xOrigin;
- }
- var bar = document.createElementNS(dojo.svg.xmlns.svg, "rect");
- bar.setAttribute("fill", data[j][i].series.color);
- bar.setAttribute("stroke-width", "0");
- bar.setAttribute("x", xA);
- bar.setAttribute("y", y);
- bar.setAttribute("width", w);
- bar.setAttribute("height", barH);
- bar.setAttribute("fill-opacity", "0.6");
- if (applyTo) {
- applyTo(bar, data[j][i].src);
- }
- group.appendChild(bar);
- }
- }
- return group;
- }, Gantt:function (plotarea, plot, kwArgs, applyTo) {
- var area = plotarea.getArea();
- var group = document.createElementNS(dojo.svg.xmlns.svg, "g");
- var n = plot.series.length;
- var data = [];
- for (var i = 0; i < n; i++) {
- var tmp = plot.series[i].data.evaluate(kwArgs);
- data.push(tmp);
- }
- var space = 2;
- var nPoints = data[0].length;
- if (nPoints == 0) {
- return group;
- }
- var h = ((area.bottom - area.top) - (space * (nPoints - 1))) / nPoints;
- var barH = h / n;
- for (var i = 0; i < nPoints; i++) {
- var yStart = area.top + (h * i) + (space * i);
- for (var j = 0; j < n; j++) {
- var high = data[j][i].high;
- var low = data[j][i].low;
- if (low > high) {
- var t = high;
- high = low;
- low = t;
- }
- var x = plot.axisX.getCoord(low, plotarea, plot);
- var w = plot.axisX.getCoord(high, plotarea, plot) - x;
- var y = yStart + (barH * j);
- var bar = document.createElementNS(dojo.svg.xmlns.svg, "rect");
- bar.setAttribute("fill", data[j][i].series.color);
- bar.setAttribute("stroke-width", "0");
- bar.setAttribute("x", x);
- bar.setAttribute("y", y);
- bar.setAttribute("width", w);
- bar.setAttribute("height", barH);
- bar.setAttribute("fill-opacity", "0.6");
- if (applyTo) {
- applyTo(bar, data[j][i].src);
- }
- group.appendChild(bar);
- }
- }
- return group;
- }, StackedArea:function (plotarea, plot, kwArgs, applyTo) {
- var area = plotarea.getArea();
- var group = document.createElementNS(dojo.svg.xmlns.svg, "g");
- var n = plot.series.length;
- var data = [];
- var totals = [];
- for (var i = 0; i < n; i++) {
- var tmp = plot.series[i].data.evaluate(kwArgs);
- for (var j = 0; j < tmp.length; j++) {
- if (i == 0) {
- totals.push(tmp[j].y);
- } else {
- totals[j] += tmp[j].y;
- }
- tmp[j].y = totals[j];
- }
- data.push(tmp);
- }
- for (var i = n - 1; i >= 0; i--) {
- var path = document.createElementNS(dojo.svg.xmlns.svg, "path");
- path.setAttribute("fill", data[i][0].series.color);
- path.setAttribute("fill-opacity", "0.4");
- path.setAttribute("stroke", data[i][0].series.color);
- path.setAttribute("stroke-width", "1");
- path.setAttribute("stroke-opacity", "0.85");
- var cmd = [];
- var r = 3;
- for (var j = 0; j < data[i].length; j++) {
- var values = data[i];
- var x = plot.axisX.getCoord(values[j].x, plotarea, plot);
- var y = plot.axisY.getCoord(values[j].y, plotarea, plot);
- if (j == 0) {
- cmd.push("M");
- } else {
- cmd.push("L");
- }
- cmd.push(x + "," + y);
- var c = document.createElementNS(dojo.svg.xmlns.svg, "circle");
- c.setAttribute("cx", x);
- c.setAttribute("cy", y);
- c.setAttribute("r", "3");
- c.setAttribute("fill", values[j].series.color);
- c.setAttribute("fill-opacity", "0.6");
- c.setAttribute("stroke-width", "1");
- c.setAttribute("stroke-opacity", "0.85");
- group.appendChild(c);
- if (applyTo) {
- applyTo(c, data[i].src);
- }
- }
- if (i == 0) {
- cmd.push("L");
- cmd.push(x + "," + plot.axisY.getCoord(plot.axisX.origin, plotarea, plot));
- cmd.push("L");
- cmd.push(plot.axisX.getCoord(data[0][0].x, plotarea, plot) + "," + plot.axisY.getCoord(plot.axisX.origin, plotarea, plot));
- cmd.push("Z");
- } else {
- var values = data[i - 1];
- cmd.push("L");
- cmd.push(x + "," + Math.round(plot.axisY.getCoord(values[values.length - 1].y, plotarea, plot)));
- for (var j = values.length - 2; j >= 0; j--) {
- var x = plot.axisX.getCoord(values[j].x, plotarea, plot);
- var y = plot.axisY.getCoord(values[j].y, plotarea, plot);
- cmd.push("L");
- cmd.push(x + "," + y);
- }
- }
- path.setAttribute("d", cmd.join(" ") + " Z");
- group.appendChild(path);
- }
- return group;
- }, StackedCurvedArea:function (plotarea, plot, kwArgs, applyTo) {
- var tension = 3;
- var area = plotarea.getArea();
- var group = document.createElementNS(dojo.svg.xmlns.svg, "g");
- var n = plot.series.length;
- var data = [];
- var totals = [];
- for (var i = 0; i < n; i++) {
- var tmp = plot.series[i].data.evaluate(kwArgs);
- for (var j = 0; j < tmp.length; j++) {
- if (i == 0) {
- totals.push(tmp[j].y);
- } else {
- totals[j] += tmp[j].y;
- }
- tmp[j].y = totals[j];
- }
- data.push(tmp);
- }
- for (var i = n - 1; i >= 0; i--) {
- var path = document.createElementNS(dojo.svg.xmlns.svg, "path");
- path.setAttribute("fill", data[i][0].series.color);
- path.setAttribute("fill-opacity", "0.4");
- path.setAttribute("stroke", data[i][0].series.color);
- path.setAttribute("stroke-width", "1");
- path.setAttribute("stroke-opacity", "0.85");
- var cmd = [];
- var r = 3;
- for (var j = 0; j < data[i].length; j++) {
- var values = data[i];
- var x = plot.axisX.getCoord(values[j].x, plotarea, plot);
- var y = plot.axisY.getCoord(values[j].y, plotarea, plot);
- var dx = area.left + 1;
- var dy = area.bottom;
- if (j > 0) {
- dx = x - plot.axisX.getCoord(values[j - 1].x, plotarea, plot);
- dy = plot.axisY.getCoord(values[j - 1].y, plotarea, plot);
- }
- if (j == 0) {
- cmd.push("M");
- } else {
- cmd.push("C");
- var cx = x - (tension - 1) * (dx / tension);
- cmd.push(cx + "," + dy);
- cx = x - (dx / tension);
- cmd.push(cx + "," + y);
- }
- cmd.push(x + "," + y);
- var c = document.createElementNS(dojo.svg.xmlns.svg, "circle");
- c.setAttribute("cx", x);
- c.setAttribute("cy", y);
- c.setAttribute("r", "3");
- c.setAttribute("fill", values[j].series.color);
- c.setAttribute("fill-opacity", "0.6");
- c.setAttribute("stroke-width", "1");
- c.setAttribute("stroke-opacity", "0.85");
- group.appendChild(c);
- if (applyTo) {
- applyTo(c, data[i].src);
- }
- }
- if (i == 0) {
- cmd.push("L");
- cmd.push(x + "," + plot.axisY.getCoord(plot.axisX.origin, plotarea, plot));
- cmd.push("L");
- cmd.push(plot.axisX.getCoord(data[0][0].x, plotarea, plot) + "," + plot.axisY.getCoord(plot.axisX.origin, plotarea, plot));
- cmd.push("Z");
- } else {
- var values = data[i - 1];
- cmd.push("L");
- cmd.push(x + "," + Math.round(plot.axisY.getCoord(values[values.length - 1].y, plotarea, plot)));
- for (var j = values.length - 2; j >= 0; j--) {
- var x = plot.axisX.getCoord(values[j].x, plotarea, plot);
- var y = plot.axisY.getCoord(values[j].y, plotarea, plot);
- var dx = x - plot.axisX.getCoord(values[j + 1].x, plotarea, plot);
- var dy = plot.axisY.getCoord(values[j + 1].y, plotarea, plot);
- cmd.push("C");
- var cx = x - (tension - 1) * (dx / tension);
- cmd.push(cx + "," + dy);
- cx = x - (dx / tension);
- cmd.push(cx + "," + y);
- cmd.push(x + "," + y);
- }
- }
- path.setAttribute("d", cmd.join(" ") + " Z");
- group.appendChild(path);
- }
- return group;
- }, DataBar:function (data, plotarea, plot, applyTo) {
- var area = plotarea.getArea();
- var group = document.createElementNS(dojo.svg.xmlns.svg, "g");
- var n = data.length;
- var w = (area.right - area.left) / (plot.axisX.range.upper - plot.axisX.range.lower);
- var yOrigin = plot.axisY.getCoord(plot.axisX.origin, plotarea, plot);
- for (var i = 0; i < n; i++) {
- var value = data[i].y;
- var yA = yOrigin;
- var x = plot.axisX.getCoord(data[i].x, plotarea, plot) - (w / 2);
- var y = plot.axisY.getCoord(value, plotarea, plot);
- var h = Math.abs(yA - y);
- if (value < plot.axisX.origin) {
- yA = y;
- y = yOrigin;
- }
- var bar = document.createElementNS(dojo.svg.xmlns.svg, "rect");
- bar.setAttribute("fill", data[i].series.color);
- bar.setAttribute("stroke-width", "0");
- bar.setAttribute("x", x);
- bar.setAttribute("y", y);
- bar.setAttribute("width", w);
- bar.setAttribute("height", h);
- bar.setAttribute("fill-opacity", "0.6");
- if (applyTo) {
- applyTo(bar, data[i].src);
- }
- group.appendChild(bar);
- }
- return group;
- }, Line:function (data, plotarea, plot, applyTo) {
- var area = plotarea.getArea();
- var line = document.createElementNS(dojo.svg.xmlns.svg, "g");
- if (data.length == 0) {
- return line;
- }
- var path = document.createElementNS(dojo.svg.xmlns.svg, "path");
- line.appendChild(path);
- path.setAttribute("fill", "none");
- path.setAttribute("stroke", data[0].series.color);
- path.setAttribute("stroke-width", "2");
- path.setAttribute("stroke-opacity", "0.85");
- if (data[0].series.label != null) {
- path.setAttribute("title", data[0].series.label);
- }
- var cmd = [];
- for (var i = 0; i < data.length; i++) {
- var x = plot.axisX.getCoord(data[i].x, plotarea, plot);
- var y = plot.axisY.getCoord(data[i].y, plotarea, plot);
- if (i == 0) {
- cmd.push("M");
- } else {
- cmd.push("L");
- }
- cmd.push(x + "," + y);
- var c = document.createElementNS(dojo.svg.xmlns.svg, "circle");
- c.setAttribute("cx", x);
- c.setAttribute("cy", y);
- c.setAttribute("r", "3");
- c.setAttribute("fill", data[i].series.color);
- c.setAttribute("fill-opacity", "0.6");
- c.setAttribute("stroke-width", "1");
- c.setAttribute("stroke-opacity", "0.85");
- line.appendChild(c);
- if (applyTo) {
- applyTo(c, data[i].src);
- }
- }
- path.setAttribute("d", cmd.join(" "));
- return line;
- }, CurvedLine:function (data, plotarea, plot, applyTo) {
- var tension = 3;
- var area = plotarea.getArea();
- var line = document.createElementNS(dojo.svg.xmlns.svg, "g");
- if (data.length == 0) {
- return line;
- }
- var path = document.createElementNS(dojo.svg.xmlns.svg, "path");
- line.appendChild(path);
- path.setAttribute("fill", "none");
- path.setAttribute("stroke", data[0].series.color);
- path.setAttribute("stroke-width", "2");
- path.setAttribute("stroke-opacity", "0.85");
- if (data[0].series.label != null) {
- path.setAttribute("title", data[0].series.label);
- }
- var cmd = [];
- for (var i = 0; i < data.length; i++) {
- var x = plot.axisX.getCoord(data[i].x, plotarea, plot);
- var y = plot.axisY.getCoord(data[i].y, plotarea, plot);
- var dx = area.left + 1;
- var dy = area.bottom;
- if (i > 0) {
- dx = x - plot.axisX.getCoord(data[i - 1].x, plotarea, plot);
- dy = plot.axisY.getCoord(data[i - 1].y, plotarea, plot);
- }
- if (i == 0) {
- cmd.push("M");
- } else {
- cmd.push("C");
- var cx = x - (tension - 1) * (dx / tension);
- cmd.push(cx + "," + dy);
- cx = x - (dx / tension);
- cmd.push(cx + "," + y);
- }
- cmd.push(x + "," + y);
- var c = document.createElementNS(dojo.svg.xmlns.svg, "circle");
- c.setAttribute("cx", x);
- c.setAttribute("cy", y);
- c.setAttribute("r", "3");
- c.setAttribute("fill", data[i].series.color);
- c.setAttribute("fill-opacity", "0.6");
- c.setAttribute("stroke-width", "1");
- c.setAttribute("stroke-opacity", "0.85");
- line.appendChild(c);
- if (applyTo) {
- applyTo(c, data[i].src);
- }
- }
- path.setAttribute("d", cmd.join(" "));
- return line;
- }, Area:function (data, plotarea, plot, applyTo) {
- var area = plotarea.getArea();
- var line = document.createElementNS(dojo.svg.xmlns.svg, "g");
- if (data.length == 0) {
- return line;
- }
- var path = document.createElementNS(dojo.svg.xmlns.svg, "path");
- line.appendChild(path);
- path.setAttribute("fill", data[0].series.color);
- path.setAttribute("fill-opacity", "0.4");
- path.setAttribute("stroke", data[0].series.color);
- path.setAttribute("stroke-width", "1");
- path.setAttribute("stroke-opacity", "0.85");
- if (data[0].series.label != null) {
- path.setAttribute("title", data[0].series.label);
- }
- var cmd = [];
- for (var i = 0; i < data.length; i++) {
- var x = plot.axisX.getCoord(data[i].x, plotarea, plot);
- var y = plot.axisY.getCoord(data[i].y, plotarea, plot);
- if (i == 0) {
- cmd.push("M");
- } else {
- cmd.push("L");
- }
- cmd.push(x + "," + y);
- var c = document.createElementNS(dojo.svg.xmlns.svg, "circle");
- c.setAttribute("cx", x);
- c.setAttribute("cy", y);
- c.setAttribute("r", "3");
- c.setAttribute("fill", data[i].series.color);
- c.setAttribute("fill-opacity", "0.6");
- c.setAttribute("stroke-width", "1");
- c.setAttribute("stroke-opacity", "0.85");
- line.appendChild(c);
- if (applyTo) {
- applyTo(c, data[i].src);
- }
- }
- cmd.push("L");
- cmd.push(x + "," + plot.axisY.getCoord(plot.axisX.origin, plotarea, plot));
- cmd.push("L");
- cmd.push(plot.axisX.getCoord(data[0].x, plotarea, plot) + "," + plot.axisY.getCoord(plot.axisX.origin, plotarea, plot));
- cmd.push("Z");
- path.setAttribute("d", cmd.join(" "));
- return line;
- }, CurvedArea:function (data, plotarea, plot, applyTo) {
- var tension = 3;
- var area = plotarea.getArea();
- var line = document.createElementNS(dojo.svg.xmlns.svg, "g");
- if (data.length == 0) {
- return line;
- }
- var path = document.createElementNS(dojo.svg.xmlns.svg, "path");
- line.appendChild(path);
- path.setAttribute("fill", data[0].series.color);
- path.setAttribute("fill-opacity", "0.4");
- path.setAttribute("stroke", data[0].series.color);
- path.setAttribute("stroke-width", "1");
- path.setAttribute("stroke-opacity", "0.85");
- if (data[0].series.label != null) {
- path.setAttribute("title", data[0].series.label);
- }
- var cmd = [];
- for (var i = 0; i < data.length; i++) {
- var x = plot.axisX.getCoord(data[i].x, plotarea, plot);
- var y = plot.axisY.getCoord(data[i].y, plotarea, plot);
- var dx = area.left + 1;
- var dy = area.bottom;
- if (i > 0) {
- dx = x - plot.axisX.getCoord(data[i - 1].x, plotarea, plot);
- dy = plot.axisY.getCoord(data[i - 1].y, plotarea, plot);
- }
- if (i == 0) {
- cmd.push("M");
- } else {
- cmd.push("C");
- var cx = x - (tension - 1) * (dx / tension);
- cmd.push(cx + "," + dy);
- cx = x - (dx / tension);
- cmd.push(cx + "," + y);
- }
- cmd.push(x + "," + y);
- var c = document.createElementNS(dojo.svg.xmlns.svg, "circle");
- c.setAttribute("cx", x);
- c.setAttribute("cy", y);
- c.setAttribute("r", "3");
- c.setAttribute("fill", data[i].series.color);
- c.setAttribute("fill-opacity", "0.6");
- c.setAttribute("stroke-width", "1");
- c.setAttribute("stroke-opacity", "0.85");
- line.appendChild(c);
- if (applyTo) {
- applyTo(c, data[i].src);
- }
- }
- cmd.push("L");
- cmd.push(x + "," + plot.axisY.getCoord(plot.axisX.origin, plotarea, plot));
- cmd.push("L");
- cmd.push(plot.axisX.getCoord(data[0].x, plotarea, plot) + "," + plot.axisY.getCoord(plot.axisX.origin, plotarea, plot));
- cmd.push("Z");
- path.setAttribute("d", cmd.join(" "));
- return line;
- }, HighLow:function (data, plotarea, plot, applyTo) {
- var area = plotarea.getArea();
- var group = document.createElementNS(dojo.svg.xmlns.svg, "g");
- var n = data.length;
- var part = ((area.right - area.left) / (plot.axisX.range.upper - plot.axisX.range.lower)) / 4;
- var w = part * 2;
- for (var i = 0; i < n; i++) {
- var high = data[i].high;
- var low = data[i].low;
- if (low > high) {
- var t = low;
- low = high;
- high = t;
- }
- var x = plot.axisX.getCoord(data[i].x, plotarea, plot) - (w / 2);
- var y = plot.axisY.getCoord(high, plotarea, plot);
- var h = plot.axisY.getCoord(low, plotarea, plot) - y;
- var bar = document.createElementNS(dojo.svg.xmlns.svg, "rect");
- bar.setAttribute("fill", data[i].series.color);
- bar.setAttribute("stroke-width", "0");
- bar.setAttribute("x", x);
- bar.setAttribute("y", y);
- bar.setAttribute("width", w);
- bar.setAttribute("height", h);
- bar.setAttribute("fill-opacity", "0.6");
- if (applyTo) {
- applyTo(bar, data[i].src);
- }
- group.appendChild(bar);
- }
- return group;
- }, HighLowClose:function (data, plotarea, plot, applyTo) {
- var area = plotarea.getArea();
- var group = document.createElementNS(dojo.svg.xmlns.svg, "g");
- var n = data.length;
- var part = ((area.right - area.left) / (plot.axisX.range.upper - plot.axisX.range.lower)) / 4;
- var w = part * 2;
- for (var i = 0; i < n; i++) {
- var high = data[i].high;
- var low = data[i].low;
- if (low > high) {
- var t = low;
- low = high;
- high = t;
- }
- var c = data[i].close;
- var x = plot.axisX.getCoord(data[i].x, plotarea, plot) - (w / 2);
- var y = plot.axisY.getCoord(high, plotarea, plot);
- var h = plot.axisY.getCoord(low, plotarea, plot) - y;
- var close = plot.axisY.getCoord(c, plotarea, plot);
- var g = document.createElementNS(dojo.svg.xmlns.svg, "g");
- var bar = document.createElementNS(dojo.svg.xmlns.svg, "rect");
- bar.setAttribute("fill", data[i].series.color);
- bar.setAttribute("stroke-width", "0");
- bar.setAttribute("x", x);
- bar.setAttribute("y", y);
- bar.setAttribute("width", w);
- bar.setAttribute("height", h);
- bar.setAttribute("fill-opacity", "0.6");
- g.appendChild(bar);
- var line = document.createElementNS(dojo.svg.xmlns.svg, "line");
- line.setAttribute("x1", x);
- line.setAttribute("x2", x + w + (part * 2));
- line.setAttribute("y1", close);
- line.setAttribute("y2", close);
- line.setAttribute("style", "stroke:" + data[i].series.color + ";stroke-width:1px;stroke-opacity:0.6;");
- g.appendChild(line);
- if (applyTo) {
- applyTo(g, data[i].src);
- }
- group.appendChild(g);
- }
- return group;
- }, HighLowOpenClose:function (data, plotarea, plot, applyTo) {
- var area = plotarea.getArea();
- var group = document.createElementNS(dojo.svg.xmlns.svg, "g");
- var n = data.length;
- var part = ((area.right - area.left) / (plot.axisX.range.upper - plot.axisX.range.lower)) / 4;
- var w = part * 2;
- for (var i = 0; i < n; i++) {
- var high = data[i].high;
- var low = data[i].low;
- if (low > high) {
- var t = low;
- low = high;
- high = t;
- }
- var o = data[i].open;
- var c = data[i].close;
- var x = plot.axisX.getCoord(data[i].x, plotarea, plot) - (w / 2);
- var y = plot.axisY.getCoord(high, plotarea, plot);
- var h = plot.axisY.getCoord(low, plotarea, plot) - y;
- var open = plot.axisY.getCoord(o, plotarea, plot);
- var close = plot.axisY.getCoord(c, plotarea, plot);
- var g = document.createElementNS(dojo.svg.xmlns.svg, "g");
- var bar = document.createElementNS(dojo.svg.xmlns.svg, "rect");
- bar.setAttribute("fill", data[i].series.color);
- bar.setAttribute("stroke-width", "0");
- bar.setAttribute("x", x);
- bar.setAttribute("y", y);
- bar.setAttribute("width", w);
- bar.setAttribute("height", h);
- bar.setAttribute("fill-opacity", "0.6");
- g.appendChild(bar);
- var line = document.createElementNS(dojo.svg.xmlns.svg, "line");
- line.setAttribute("x1", x - (part * 2));
- line.setAttribute("x2", x + w);
- line.setAttribute("y1", open);
- line.setAttribute("y2", open);
- line.setAttribute("style", "stroke:" + data[i].series.color + ";stroke-width:1px;stroke-opacity:0.6;");
- g.appendChild(line);
- var line = document.createElementNS(dojo.svg.xmlns.svg, "line");
- line.setAttribute("x1", x);
- line.setAttribute("x2", x + w + (part * 2));
- line.setAttribute("y1", close);
- line.setAttribute("y2", close);
- line.setAttribute("style", "stroke:" + data[i].series.color + ";stroke-width:1px;stroke-opacity:0.6;");
- g.appendChild(line);
- if (applyTo) {
- applyTo(g, data[i].src);
- }
- group.appendChild(g);
- }
- return group;
- }, Scatter:function (data, plotarea, plot, applyTo) {
- var r = 7;
- var group = document.createElementNS(dojo.svg.xmlns.svg, "g");
- for (var i = 0; i < data.length; i++) {
- var x = plot.axisX.getCoord(data[i].x, plotarea, plot);
- var y = plot.axisY.getCoord(data[i].y, plotarea, plot);
- var point = document.createElementNS(dojo.svg.xmlns.svg, "path");
- point.setAttribute("fill", data[i].series.color);
- point.setAttribute("stroke-width", "0");
- point.setAttribute("d", "M " + x + "," + (y - r) + " " + "Q " + x + "," + y + " " + (x + r) + "," + y + " " + "Q " + x + "," + y + " " + x + "," + (y + r) + " " + "Q " + x + "," + y + " " + (x - r) + "," + y + " " + "Q " + x + "," + y + " " + x + "," + (y - r) + " " + "Z");
- if (applyTo) {
- applyTo(point, data[i].src);
- }
- group.appendChild(point);
- }
- return group;
- }, Bubble:function (data, plotarea, plot, applyTo) {
- var group = document.createElementNS(dojo.svg.xmlns.svg, "g");
- var sizeFactor = 1;
- for (var i = 0; i < data.length; i++) {
- var x = plot.axisX.getCoord(data[i].x, plotarea, plot);
- var y = plot.axisY.getCoord(data[i].y, plotarea, plot);
- if (i == 0) {
- var raw = data[i].size;
- var dy = plot.axisY.getCoord(data[i].y + raw, plotarea, plot) - y;
- sizeFactor = dy / raw;
- }
- if (sizeFactor < 1) {
- sizeFactor = 1;
- }
- var point = document.createElementNS(dojo.svg.xmlns.svg, "circle");
- point.setAttribute("fill", data[i].series.color);
- point.setAttribute("fill-opacity", "0.8");
- point.setAttribute("stroke", data[i].series.color);
- point.setAttribute("stroke-width", "1");
- point.setAttribute("cx", x);
- point.setAttribute("cy", y);
- point.setAttribute("r", (data[i].size / 2) * sizeFactor);
- if (applyTo) {
- applyTo(point, data[i].src);
- }
- group.appendChild(point);
- }
- return group;
- }});
- dojo.charting.Plotters["Default"] = dojo.charting.Plotters.Line;
- }