ntext.lineWidth = 1;
		context.beginPath();
		if(linear_scale_checked) {
			// horizontal
			for(var j = stepped(s2x(0)); j <= stepped(s2x(w)); j += step) {
				if(j != 0) {
					context.moveTo(sharp(x2s(j)), sharp(y2s(0)) + 2);
					context.lineTo(sharp(x2s(j)), sharp(y2s(0)) - 2);
				}
				context.fillText(j, sharp(x2s(j)) + 12, sharp(y2s(0)) - 12);
			}
			// vertical
			for(var i = stepped(s2y(h)); i <= stepped(s2y(0)); i += step) {
				if(i != 0) {
					context.moveTo(sharp(x2s(0)) - 2, sharp(y2s(i)))