javascript - Svg brush as slider. How to set slider scale graduation frequency -


in http://bl.ocks.org/mbostock/6452972#index.html slider example there seems no explicit assignment scale graduation frequency.

what if want graduete scale 10 , not 20. how can achieve that?

at moment graduation like:

0 20 40 etc. 

i want:

0 10 20 etc. 

how can achieve explicitly in javascript file?

call axis.ticks() set number of ticks want. in example below i've added ticks(20)

<!doctype html>  <meta charset="utf-8">  <style>    .axis {    font: 10px sans-serif;    -webkit-user-select: none;    -moz-user-select: none;    user-select: none;  }    .axis .domain {    fill: none;    stroke: #000;    stroke-opacity: .3;    stroke-width: 10px;    stroke-linecap: round;  }    .axis .halo {    fill: none;    stroke: #ddd;    stroke-width: 8px;    stroke-linecap: round;  }    .slider .handle {    fill: #fff;    stroke: #000;    stroke-opacity: .5;    stroke-width: 1.25px;    cursor: crosshair;  }    </style>  <body>  <script src="http://d3js.org/d3.v3.min.js"></script>  <script>    var margin = {top: 200, right: 50, bottom: 200, left: 50},      width = 960 - margin.left - margin.right,      height = 500 - margin.bottom - margin.top;    var x = d3.scale.linear()      .domain([0, 180])      .range([0, width])      .clamp(true);    var brush = d3.svg.brush()      .x(x)      .extent([0, 0])      .on("brush", brushed);    var svg = d3.select("body").append("svg")      .attr("width", width + margin.left + margin.right)      .attr("height", height + margin.top + margin.bottom)    .append("g")      .attr("transform", "translate(" + margin.left + "," + margin.top + ")");    svg.append("g")      .attr("class", "x axis")      .attr("transform", "translate(0," + height / 2 + ")")      .call(d3.svg.axis()        .scale(x)        .orient("bottom")        .tickformat(function(d) { return d + "°"; })        .ticksize(0)        .ticks(20)        .tickpadding(12))    .select(".domain")    .select(function() { return this.parentnode.appendchild(this.clonenode(true)); })      .attr("class", "halo");    var slider = svg.append("g")      .attr("class", "slider")      .call(brush);    slider.selectall(".extent,.resize")      .remove();    slider.select(".background")      .attr("height", height);    var handle = slider.append("circle")      .attr("class", "handle")      .attr("transform", "translate(0," + height / 2 + ")")      .attr("r", 9);    slider      .call(brush.event)    .transition() // gratuitous intro!      .duration(750)      .call(brush.extent([70, 70]))      .call(brush.event);    function brushed() {    var value = brush.extent()[0];      if (d3.event.sourceevent) { // not programmatic event      value = x.invert(d3.mouse(this)[0]);      brush.extent([value, value]);    }      handle.attr("cx", x(value));    d3.select("body").style("background-color", d3.hsl(value, .8, .8));  }    </script>


Comments

Popular posts from this blog

javascript - gulp-nodemon - nodejs restart after file change - Error: listen EADDRINUSE events.js:85 -

Fatal Python error: Py_Initialize: unable to load the file system codec. ImportError: No module named 'encodings' -

javascript - oscilloscope of speaker input stops rendering after a few seconds -