js怎么实现本地时间轴(JS,开发技术)

时间:2024-05-04 04:55:19 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    js%E6%80%8E%E4%B9%88%E5%AE%9E%E7%8E%B0%E6%9C%AC%E5%9C%B0%E6%97%B6%E9%97%B4%E8%BD%B4

使用 D3 绘制图表一般都会绘制一个坐标轴,但是用 D3 画过图的同学都知道默许情况下绘制的坐标轴刻度是英文的。但是我们要的刻度是中文的。

默认格式化:

d3.time.format("%b%Y")

本地格式化:

zh.timeFormat("%Y年%b")

思路很简单:

定义简体中文本地化

用本地时间格式化函数格式化数轴的刻度值

定义新的简体中文本地化

//简体中文本地化
varzh=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:["星期日","星期1","星期2","星期3","星期4","星期5","星期6"],
months:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","101月","102月"],
shortMonths:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","101月","102月"]});

定义时间比例尺

//时间比例尺vartimeScale=d3.time.scale().domain([newDate(2015,0,1),newDate(2016,1,1)]).range([0,width-40]);

指定轴的比例尺和格式化函数

//时间轴varaxis=d3.svg.axis().scale(timeScale).tickFormat(zh.timeFormat("%Y年%b"))//指定为本地格式化函数.orient("bottom")

绘制数轴

//添加时间轴varsvg=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.ticktext).attr(transform,translate(30,20)rotate(30))

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

完全代码

<metacharset="utf⑻">
<style>body{font-weight:bold;}
.axispath,
.axisline{fill:none;stroke:#000;shape-rendering:crispEdges;}
</style>
<body>
<scriptsrc="../../d3.js"><script>
//简体中文本地化
varzh=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:["星期日","星期1","星期2","星期3","星期4","星期5","星期6"],
months:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","101月","102月"],
shortMonths:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","101月","102月"]});
//svg宽,高
varwidth=1000,height=500;
//时间比例尺
vartimeScale=d3.time.scale().domain([newDate(2015,0,1),newDate(2016,1,1)]).range([0,width-40]);
//时间轴
varaxis=d3.svg.axis().scale(timeScale).tickFormat(zh.timeFormat("%Y年%b")).orient("bottom")
//添加时间轴
varsvg=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.ticktext).attr(transform,translate(30,20)rotate(30))script>

本文:js怎么实现本地时间轴的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:JavaScript如何使用Switch语句来选择将要执行的代码块下一篇:

72 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18