-->
<script type="text/javascript" src="../dygraph-dev.js"></script>
-
- <script type="text/javascript">
+ <script>
var start_date = new Date("2002/12/29").getTime();
var end_date = new Date().getTime();
data = [];
for (var d = start_date; d < end_date; d += 604800 * 1000) {
var millis = d + 2 * 3600 * 1000;
- data.push( [ new Date(new Date(millis).strftime("%Y/%m/%d")), 50 ]);
+ var date = new Date(millis);
+ var yyyy = date.getFullYear(),
+ mm = date.getMonth(),
+ dd = date.getDate();
+ data.push( [ new Date(Date.UTC(yyyy, mm, dd)), 50 ]);
}
</script>
- <style type="text/css">
+
+ <style>
#tool_zoom {
background: url('drawing/tool-palette.png');
background-position: 0px 0px;
var valueRange = [0, 100];
function setPoint(event, g, context) {
- var canvasx = Dygraph.pageX(event) - Dygraph.findPosX(g.graphDiv);
- var canvasy = Dygraph.pageY(event) - Dygraph.findPosY(g.graphDiv);
+ var pos = Dygraph.findPos(g.graphDiv);
+ var canvasx = Dygraph.pageX(event) - pos.x;
+ var canvasy = Dygraph.pageY(event) - pos.y;
var xy = g.toDataCoords(canvasx, canvasy);
var x = xy[0], value = xy[1];
var rows = g.numRows();
{
valueRange: valueRange,
labels: [ 'Date', 'Value' ],
+ labelsUTC: true,
interactionModel: {
mousedown: function (event, g, context) {
if (tool == 'zoom') {
},
mousemove: function (event, g, context) {
if (tool == 'zoom') {
- Dygraph.defaultInteractionModel.mousemove(event, g, context);
} else {
if (!isDrawing) return;
setPoint(event, g, context);
},
mouseup: function(event, g, context) {
if (tool == 'zoom') {
- Dygraph.defaultInteractionModel.mouseup(event, g, context);
} else {
finishDraw();
}
},
mouseout: function(event, g, context) {
if (tool == 'zoom') {
- Dygraph.defaultInteractionModel.mouseout(event, g, context);
}
},
dblclick: function(event, g, context) {
},
strokeWidth: 1.5,
gridLineColor: 'rgb(196, 196, 196)',
- drawYGrid: false,
- drawYAxis: false
+ axes: {
+ y: {
+ drawAxis: false,
+ drawGrid: false
+ }
+ }
});
window.onmouseup = finishDraw;
</script>
updateChart();
}
+ function toHex(rgb) {
+ return 'rgb(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ')';
+ }
+
function updateChart() {
// Generate a new data set with the regression lines.
var new_labels = [];
// Darken the series by 50% to generate its regression.
var label = labels[i] + " Regression";
new_labels.push(label);
- var c = new RGBColorParser(orig_colors[i - 1]);
+ var c = Dygraph.toRGB_(orig_colors[i - 1]);
c.r = Math.floor(255 - 0.5 * (255 - c.r));
c.g = Math.floor(255 - 0.5 * (255 - c.g));
c.b = Math.floor(255 - 0.5 * (255 - c.b));
- new_colors.push(c.toHex());
+ new_colors.push(toHex(c));
new_opts[label] = {
drawPoints: false,
strokeWidth: 1.0
drawPoints: true,
strokeWidth: 0.0,
fractions: true,
- errorBars: true
+ errorBars: true,
+ pointSize: 1
}
);
g.updateOptions({});
}
+ function toHex(rgb) {
+ return 'rgb(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ')';
+ }
+
function drawLines(ctx, area, layout) {
if (typeof(g) == 'undefined') return; // won't be set on the initial draw.
var p1 = g.toDomCoords(x1, y1);
var p2 = g.toDomCoords(x2, y2);
- var c = new RGBColorParser(g.getColors()[i - 1]);
+ var c = Dygraph.toRGB_(g.getColors()[i - 1]);
c.r = Math.floor(255 - 0.5 * (255 - c.r));
c.g = Math.floor(255 - 0.5 * (255 - c.g));
c.b = Math.floor(255 - 0.5 * (255 - c.b));
- var color = c.toHex();
+ var color = toHex(c);
ctx.save();
ctx.strokeStyle = color;
- ctx.lineWidth = 1.0;
+ ctx.lineWidth = 2.0;
ctx.beginPath();
ctx.moveTo(p1[0], p1[1]);
ctx.lineTo(p2[0], p2[1]);
g.updateOptions({});
}
+ function toHex(rgb) {
+ return 'rgb(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ')';
+ }
+
function drawLines(ctx, area, layout) {
if (typeof(g) == 'undefined') return; // won't be set on the initial draw.
var p1 = g.toDomCoords(x1, y1);
var p2 = g.toDomCoords(x2, y2);
- var c = new RGBColorParser(g.getColors()[i - 1]);
+ var c = Dygraph.toRGB_(g.getColors()[i - 1]);
c.r = Math.floor(255 - 0.5 * (255 - c.r));
c.g = Math.floor(255 - 0.5 * (255 - c.g));
c.b = Math.floor(255 - 0.5 * (255 - c.b));
- var color = c.toHex();
+ var color = toHex(c);
ctx.save();
ctx.strokeStyle = color;
ctx.lineWidth = 1.0;
{
labels: [ 'Date', 'Y1', 'Y2', 'Y3', 'Y4' ],
series : {
- 'Y3': {
- axis: {
- }
- },
- 'Y4': {
- axis: 'Y3' // use the same y-axis as series Y3
- }
+ 'Y3': { axis: 'y2' },
+ 'Y4': { axis: 'y2' }
},
valueRange: [40, 70],
axes: {
{
labels: [ 'Date', 'Y1', 'Y2', 'Y3', 'Y4' ],
series : {
- 'Y3': {
- axis: {
- }
- },
- 'Y4': {
- axis: 'Y3' // use the same y-axis as series Y3
- }
+ 'Y3': { axis: 'y2' },
+ 'Y4': { axis: 'y2' }
},
axes: {
y: {
{
labels: [ 'Date', 'Y1', 'Y2', 'Y3', 'Y4' ],
series : {
- 'Y3': {
- axis: {
- }
- },
- 'Y4': {
- axis: 'Y3' // use the same y-axis as series Y3
- }
+ 'Y3': { axis: 'y2' },
+ 'Y4': { axis: 'y2' }
},
axes: {
y: {
1e6 * (2 - i * (100 - i) / (50 * 50))]);
}
+ function formatDate(d) {
+ var yyyy = d.getFullYear(),
+ mm = d.getMonth() + 1,
+ dd = d.getDate();
+ return yyyy + '-' + (mm < 10 ? '0' : '') + mm + (dd < 10 ? '0' : '') + dd;
+ }
+
g = new Dygraph(
document.getElementById("demodiv"),
data,
axes: {
x: {
valueFormatter: function(ms) {
- return 'xvf(' + new Date(ms).strftime('%Y-%m-%d') + ')';
+ return 'xvf(' + formatDate(new Date(ms)) + ')';
},
axisLabelFormatter: function(d) {
- return 'xalf(' + d.strftime('%Y-%m-%d') + ')';
+ return 'xalf(' + formatDate(d) + ')';
},
pixelsPerLabel: 100,
},