Skip to content

Instantly share code, notes, and snippets.

@xoor-io
xoor-io / d3-canvas-zoom.js
Created April 10, 2018 18:18
d3-canvas-zoom-01
function draw(transform) {
const scaleX = transform.rescaleX(x);
const scaleY = transform.rescaleY(y);
gxAxis.call(xAxis.scale(scaleX));
gyAxis.call(yAxis.scale(scaleY));
context.clearRect(0, 0, width, height);
dataExample.forEach( point => {
@xoor-io
xoor-io / d3-canvas-zoom-02.js
Last active April 10, 2018 19:27
d3-canvas-zoom-02
function drawPoint(scaleX, scaleY, point, k) {
context.beginPath();
context.fillStyle = pointColor;
const px = scaleX(point[0]);
const py = scaleY(point[1]);
context.arc(px, py, 1.2 * k, 0, 2 * Math.PI, true);
context.fill();
}
@xoor-io
xoor-io / d3-canvas-zoom-03.js
Created April 10, 2018 18:57
d3-canvas-zoom-03
draw(d3.zoomIdentity),
@xoor-io
xoor-io / d3-canvas-zoom-04.js
Last active April 10, 2018 19:14
d3-canvas-zoom-04
const zoom_function = d3.zoom().scaleExtent([1, 1000])
.on('zoom', () => {
const transform = d3.event.transform;
context.save();
draw(transform);
context.restore();
});
canvasChart.call(zoom_function);
@xoor-io
xoor-io / d3-canvas-zoom-04.html
Created April 10, 2018 19:36
d3-canvas-zoom-05
<div class="scatter-container">
<div class="tools">
<button id="reset">Reset</button>
</div>
</div>
@xoor-io
xoor-io / d3-canvas-zoom-05.css
Created April 10, 2018 19:38
d3-canvas-zoom-05
.tools {
position: absolute;
left: calc(50% + 400px);
visibility: hidden;
}
@xoor-io
xoor-io / d3-canvas-zoom-05.css
Created April 10, 2018 19:38
d3-canvas-zoom-05
.tools {
position: absolute;
left: calc(50% + 400px);
visibility: hidden;
}
@xoor-io
xoor-io / d3-canvas-zoom-06.js
Created April 10, 2018 19:40
d3-canvas-zoom-06
const toolsList = container.select('.tools')
.style('margin-top', margin.top + 'px')
.style('visibility', 'visible');
toolsList.select('#reset').on('click', () => {
const t = d3.zoomIdentity.translate(0, 0).scale(1);
canvasChart.transition()
.duration(200)
.ease(d3.easeLinear)
.call(zoom_function.transform, t)
@xoor-io
xoor-io / d3-canvas-brush-zoom-01.html
Created April 26, 2018 18:36
d3-canvas-brush-zoom-01
<div class="tools">
<button id="reset">Reset</button>
<button id="zoom" class="active">Zoom</button>
<button id="brush">Brush</button>
</div>
@xoor-io
xoor-io / d3-canvas-brush-zoom-02.css
Created April 26, 2018 18:38
d3-canvas-brush-zoom-02
.tools button {
background-color: #e7e7e7;
border: none;
color: #000000;
cursor: pointer;
display: block;
margin-bottom: 5px;
padding: 5px 10px;
outline: 0;
}