介绍
这篇文章主要介绍了d3.js实现创建完整柱形图的案例,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
d3js.org v5.9.2
之前只是各个部分的演示,现在将各部分整合起来,发现还是学到了不少东西
主要是加深了对规模(比例尺)的理解
代码
样式及数据
先是样式
& lt; style> 矩形{ 填充:粉红色 } 文本{ 字体大小:10 px; } & lt;/style>
接着是数据及柱状图宽高等
const data=https://www.yisu.com/zixun/(3、6、10、25), barWidth=100, barHeight=300, 填充={//svg留白用 上图:100年, 对的:100年, 底部:100, 左:100 };
创建比例尺
实践之后对比例尺与坐标轴的理解加深了一点
让barScale=d3.scaleLinear ()。域([0,d3.max(数据)])。范围([0,barHeight]), yAxisScale=d3.scaleLinear () .domain ([d3.max(数据),0])。范围([0,barHeight]),//y轴使用线性比例尺,注意域输入域 xAxisScale=d3.scaleBand ()。域([1、2、3、4])。范围([0,(barWidth - 1) * data.length]);//x轴使用scaleBand比例尺
barScale用于柱形图创建,
yAxisScale用于y轴创建,注意域()的输入域,否则刻度数值大小排列会相反,
xAxisScale用于x轴创建,使用scaleBand序数比例尺,
之前对比例尺的理解太过肤浅,这里也做了几个小实验
console.log (“barScale (0):”+ barScale (0)); console.log (“yAxisScale (0): ' + yAxisScale (0)); console.log (“xAxisScale (2): ' + xAxisScale (2)),
显示如下
对于<代码> barScale 代码>与<代码> yAxisScale> 代码,输入域相反,所以映射相反,把一篇他人很棒的总结放于文末
创建柱状图
让barContainer=d3.select (& # 39; .chart& # 39;) .attr(& # 39;宽度# 39;,数据。* barWidth +填充长度。左+ padding.right) .attr(& # 39;高度# 39;,barHeight +填充。前+ padding.bottom) .selectAll(& # 39;舌鳎# 39;) . data(数据).enter () .append(& # 39;舌鳎# 39;) .attr(& # 39;变换# 39;,(d i)=比;{ 返回& # 39;翻译(& # 39;+(填充。左+ i * barWidth) + & # 39;, & # 39;+(填充。前+ barHeight - barScale (d)) + & # 39;) & # 39; }); barContainer.append(& # 39;矩形# 39;) .attr(& # 39;高度# 39;,d=比;barScale (d)) .attr(& # 39;宽度# 39;,barWidth - 1); barContainer .append(& # 39;文本# 39;) 。text (d=比;d) .attr (& # 39; y # 39; (10) .attr (& # 39; x # 39;, barWidth/2 - 5),
这里使用了之前定义的填充对象的值进行部分留白
创建坐标轴
/* * *创造y轴 */让桠溪=d3.axisLeft (yAxisScale); d3.select (& # 39; .chart& # 39;) .append(& # 39;舌鳎# 39;) .attr(& # 39;变换# 39;,& # 39;翻译(& # 39;+(填充。左- 10)+ & # 39;& # 39;+填充。前+ & # 39;)& # 39; 打电话给(桠溪);/* * *创建X轴 */让xAxis=d3.axisBottom (xAxisScale); d3.select (& # 39; .chart& # 39;) .append(& # 39;舌鳎# 39;) .attr(& # 39;变换# 39;,& # 39;翻译(& # 39;+ (padding.left) + & # 39; & # 39;+(填充。前+ barHeight) + & # 39;) & # 39; 打电话给(xAxis);
最后创建坐标轴
感谢你能够认真阅读完这篇文章,希望小编分享d3.js实现创建完整柱形图的案例内容对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,遇到问题就找,详细的解决方法等着你来学习!