数据可视化D3相关记录

本文详细记录了一学期数据可视化的学习内容,聚焦于D3.js库,包括直方图的横纵轴设定与柱体绘制,饼图的占比展示及图例添加,力导向图的布局算法和动态更新,以及如何绘制中国地图并描绘省份边界。这些内容有助于理解D3.js在数据可视化中的应用。
摘要由CSDN通过智能技术生成

记载本学期数据可视化相关课程内容,主要为D3直方图、饼图、力导向图、地图相关记录。

直方图

直方图是常见的几种数据可视化方式之一,横轴表示数据种类,纵轴表示数据大小,以柱体长短直观展示数据分布。

以以下数据为例,画一个辅以x轴,y轴的直方图。

var X = ['A','B','C','D','E'];
var Y = [5,8,3,6,12,9,];

画布

var svg=d3.select("body")
          .attr("width",w)
		  .attr("height",h);

x轴

var xScale = d3.scaleOrdinal()
			   .domain(X)
			   .range([200,240,280,320,360,400,440]);//X轴起点位置及间隔
var xAxis = d3.axisBottom()
			  .scale(xScale);
svg.append('g')
   .call(xAxis)
   .attr("transform", "translate(0," + (h - padding.bottom) + ")")
   .selectAll("text")
   .attr("dx", "20px")
   .attr("font-size", "14px");

y轴

// y轴      
var yScale = d3.scaleLinear()
	           .domain([0, 15])
			   .range([h - padding.bottom, padding.top]);
var yAxis = d3.axisLeft()
		      .scale(yScale)
			  .ticks(5);//y轴格数
svg.append('g')
   .call(yAxis)
   .attr("transform", "translate(" + 200 + ",0)");

柱体

var bar = svg.selectAll(".bar")
			 .data(Y)
			 .enter().append("g")
			 .attr("class", "bar")
		     .attr("transform", function(d, i) {
   
			     return "translate(" + (xScale(i * 30)+5) + "," + yScale(d) + ")";
		      });
bar.append("rect")
   .attr("x",1)
   .attr("width", 30)
   .attr("height", function(d) {
   
	   return h - yScale(d) - padding.bottom;
	})
   .attr("fill",function(d,i){
   
	   return d3.rgb(100,d,220);
	})

饼图

饼图是另一种常见的数据可视化方式,能更直观地看到各个数据的分布占比情况,延用直方图数据绘制一个饼图中的环状图。

var svg=d3.select("body")
		  .attr("width",w)
		  .attr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值