js数据可视化实战之本地时间轴

js数据可视化实战之本地时间轴,第1张

概述背景需求绘制效果实现思路关键技术完整代码


背景需求 绘制效果 实现思路 关键技术 完全代码


背景需求

使用D3绘制图表1般都会绘制1个坐标轴,但是用D3画过图的同学都知道默许情况下绘制的坐标轴刻度是英文的。但是我们要的刻度是中文的。怎样办呢?且看本文讲授如何绘制本地时间轴。

绘制效果

实现效果如何,先来1睹为快!

默许格式化: d3.time.format("%b %Y")

本地格式化: zh.timeFormat("%Y年%b")

实现思路

思路很简单:

定义简体中文本地化 用本地时间格式化函数格式化数轴的刻度值 关键技术 定义新的简体中文本地化 //简体中文本地化 var zh = d3.locale({ decimal: ".",thousands: ",",grouPing: [3],currency: ["¥",""],dateTime: "%a %b %e %X %Y",date: "%Y/%-m/%-d",time: "%H:%M:%s",periods: ["上午","下午"],days: ["星期日","星期1","星期2","星期3","星期4","星期5","星期6"],shortDays: ["星期日",months: ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","101月","102月"],shortMonths: ["1月","102月"]}); 定义时间比例尺 //时间比例尺 var timeScale = d3.time.scale() .domain([new Date(2015,0,1),new Date(2016,1,1)]) .range([0,wIDth-40]); 指定轴的比例尺和格式化函数 //时间轴 var axis = d3.svg.axis().scale(timeScale).tickFormat(zh.timeFormat("%Y年%b"))//指定为本地格式化函数 .orIEnt("bottom") 绘制数轴 //添加时间轴 var svg = d3.select("body").append("svg") .attr("wIDth",wIDth+200) .attr("height",height) .append("g") .attr("class","axis") .attr("transform","translate(" + 20 + "," + height/2 + ")") .call(axis); 调剂刻度样式 //旋转文字 d3.selectAll(g.tick text).attr(transform,translate(30,20)rotate(30))

本例很简单,可使用下面的代码测试效果,你学会了吗?

完全代码 <Meta charset="utf⑻"> <style> body{ Font-weight:bold; } .axis path,.axis line { fill: none; stroke: #000; shape-rendering: crispEdges; } style> <body> <script src="../../d3.Js">script> <script> //简体中文本地化 var zh = d3.locale({ decimal: ".","102月"]}); //svg宽,高 var wIDth = 1000,height = 500; //时间比例尺 var timeScale = d3.time.scale() .domain([new Date(2015,wIDth-40]); //时间轴 var axis = d3.svg.axis().scale(timeScale).tickFormat(zh.timeFormat("%Y年%b")).orIEnt("bottom") //添加时间轴 var svg = d3.select("body").append("svg") .attr("wIDth"," + height/2 + ")") .call(axis); //旋转文字 d3.selectAll(g.tick text).attr(transform,20)rotate(30)) script> 总结

以上是内存溢出为你收集整理的js数据可视化实战之本地时间轴全部内容,希望文章能够帮你解决js数据可视化实战之本地时间轴所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1016777.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存