number <select id='num_points'
style='text-align:center; text-align-last:center;
background:silver; width:200px; height:25px'>
<option value='100'>100</option><option value='150'>150</option>
<option value='200'>200</option><option value='250'>250</option>
<option value='300'>300</option><option value='350'>350</option>
</select><br/><br/>run
<button style='background:silver; width:200px; height:25px'
onclick='draw_chart();' id='run_button'>=>>></button><br/><br/>
<svg id='d302' style='background-color:silver;'/><script>
margin={top:20,right:20,bottom:20,left:60},width=600,height=400;
path.transition().duration(10000).ease(d3.easeLinear)
.attrTween('stroke-dasharray',function() {
const length=this.getTotalLength();
return d3.interpolate(`0,${length}`,`${length},${length}`);});
var n=parseInt(document.getElementById('num_points').value);
var x=d3.scaleLinear().domain([0,n-1])
.range([margin.left,width-margin.right]),
y=d3.scaleLinear().domain([0,n])
.range([height-margin.bottom,margin.top]);
var line=d3.line().curve(d3.curveMonotoneX)
.x(function(d,i) {return x(i);})
.y(function(d) {return y(d.y);});
var data=d3.range(n).map(function(d) {
return {'y':d3.randomUniform(n)()}; })
.attr('transform',`translate(0,${height-margin.bottom})`)
.call(d3.axisBottom(scale)
.ticks(width/60).tickSizeOuter(0)),
.attr('transform',`translate(${margin.left},0)`)
.call(d3.axisLeft(scale).ticks(height/40));
var svg=d3.select('#d302')
.attr('width',width).attr('height',height);
svg.selectAll('g').remove(); svg.selectAll('path').remove();
svg.append('g').call(xAxis); svg.append('g').call(yAxis);
svg.append('path').datum(data).attr('d',line)
.attr('stroke','#ff36ff').attr('stroke-width',1)
.attr('stroke-miterlimit',1).attr('stroke-dasharray','0,1')
.attr('fill','none').call(reveal);};
No comments:
Post a Comment