dataset=[];for (i=0;i<50;i++){ x=Math.round(Math.random()*1 " />
代码实现散点图
<script type="text/javascript">datat=[];for (i=0;i<50;i++){ x=Math.round(Math.random()*1000); y=Math.round(Math.random()*1000); datat.push([x,y]);}var formator=d3.format(".1%") //刻度样式自定义,也可以通过formator(10)测试。/* var datat=[[ 5, 20 ],}[ 480, 90 ],[ 250, 50 ],[ 100, 33 ],[ 330, 95 ],[ 410, 12 ],[ 475, 44 ],[ 25, 67 ],[ 85, 21 ],[ 220, 88 ]];*/var h=350;var w=800; var svg=d3.lect("body").append("svg"); svg.attr("height",h) .attr("width",w); /*设置比例尺*/ padding=35; var xscale=d3.scaleLinear() .domain([0,d3.max(datat,function(d){ return d[0]; })]) .range([0+padding,w-padding]); var yscale=d3.scaleLinear() .domain([0,d3.max(datat,function(d){ return d[1]; })]) .range([h-padding,0+padding]);//改变下y坐标的延伸方向 var rscale=d3.scaleLinear() .domain([0,d3.max(datat,function(d){ return d[1]; })]) .range([2,5]);//将半径映射到2-5,y越大,r越大,但视觉上不合理 /*坐标轴声生成*/ var xaxis=d3.axisBottom() .scale(xscale) .ticks(10) // .tickFormat(formator); var yaxis=d3.axisLeft() .scale(yscale) .ticks(10); /*g是group的意思,跟html中p作用一样*/ svg.append("g") .attr("class","xaxis") .attr("transform", "translate(0," + (h - padding) + ")") .call(xaxis); svg.append("g") .没空造句attr("class","yaxis") .attr("transform","translate("+(padding)+",0)") .call(yaxis); /*定义蒙版*/ svg.append("clipPath") .attr("id","chartarea") .append("rect") .attr("x",padding) .attr("y",0) .attr("width",w-padding) .attr("height",h-padding); svg.append("g") //将所有的circle添加到g元素中,并设置id以后方便引用 .attr("id","circles") .attr("cl幼师工资ip-path","url(#chartarea)")//引用蒙版 .lectAll("circle") .data(datat) .enter() .append("circle") .attr("cx",function(d){ return xscale(d[0]); }) .attr("cy",functioswamn(d){ return yscale(d[1]); }) .attr("r",function(d){ return rscale(d[1]); }) .attr("fill","red"); /*没有比例尺生成的散点图*/ /*svg.lectAll("circle") .data(datat) .enter() .append("circle") .attr("cx",function(d){ return d[0]; }) .attr("cy",function(d){ return d[1]; }) .attr("r",function(){ return "5px"; }) */ svg.lectAll("text") .data(datat) .enter() .append("text") .text(function(d){ return d; }) .attr("x",function(d){ return xscale(d[0]); }) .attr("y",function(d){ return yscale(d[1]); }) .attr("font-size","15px") .attr("fill","pink") d3.lect("button") .on("click",function(){ datat=[]; var maxvalue=Math.round(Math.random()*1000); for (i=0;i<50;i++){ x=Math.round(Math.random()*maxvalue); y=Math.round(Math.random()*maxvalue); datat.push([x,y]); }; // var xscale=d3.scale.linear() xscale.domain([0,d3.max(datat,function(d){ return d[0]; })]) .range([0+padding,w-padding]); // var yscale=d3.scale.linear() yscale.domain([0,d3.max(datat,function(d){ return d[1]; })]) .range([h-padding,0+padding]);//改变下y坐标的延伸方向 // var rscale=d3.scale.linear() rscale.domain([0,d3.max(datat,function(d){ return d[1]; })]) .range([2,5]);//将半径映射到2-5,y越大,r越大,但视觉上不合理 /*选中g元素*/ svg.lectAll("circle") .data(datat) .transition() .duration(1000) .on("start",function(){ d3.lect(this) 古诗江南 // .transition() // .duration(200) //在on方法中不能再有新的过度效果,只能执行立即变换的,否则会覆盖掉前边的 .attr("fill","magenta") .attr("r",3) }) .attr("cx",function(d){ return xscale(d[0]); }) .attr("cy",function(d){ return yscale(d[1]); }) // .attr("r",function(d){ // return rscale(d[1]); // }) // .attr("fill","red") .on("end",function(){ d3.lect(this) .transition() .duration(1000) .attr("fill","red") .attr("r",8) }); svg.lectAll("text") .data(datat) .transition() .duration(1000) .text(function(d){ return d; }) .attr("x",function(d){ return xscale(d[0]); }) .attr("y",function(d){ return yscale(d[1]); }) .attr("font-size","10px") .attr("fill","pink"); /*坐标轴要最后生成才可以,且坐标轴在外部已经和比例尺绑定过了,这里只需再调用一次就好*/ svg.lect(".xaxis") .transition() .duration(1000) .call(xaxis); svg.lect无锡大学有哪些(".yaxis") .transition() .duration(1000) .call(yaxis); })</script>
本文发布于:2023-04-03 10:28:18,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/74c84f9487661d832ba01534f474652d.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:代码实现散点图.doc
本文 PDF 下载地址:代码实现散点图.pdf
留言与评论(共有 0 条评论) |