- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 D3 图表,我希望轴上有日期、时间的刻度(例如“1 月 20 日,上午 12:00”)。
这很容易,我只需:
xAxis.tickFormat(d3.time.format('%b %-d, %-I:%M%p'));
最佳答案
在 D3 v3 中,您可以使用 axis.scale().ticks()
访问上一个刻度,并使用自定义 tickFormat
进行检查并返回适当的文本:
var data = [new Date("2016/01/01"), new Date("2016/01/03")];
var scale = d3.time.scale()
.domain(d3.extent(data))
.range([0, 400]);
var timeFormatWithDate = d3.time.format("%b %-d, %-I:%M%p");
var timeFormatWithoutDate = d3.time.format("%-I:%M%p");
var axis = d3.svg.axis()
.scale(scale)
.orient("left")
.tickFormat(function(d, i) {
var ticks = axis.scale().ticks();
if (i > 0 && ticks[i - 1].getDay() === d.getDay()) {
return timeFormatWithoutDate(d);
} else {
return timeFormatWithDate(d);
}
});
d3.select("body")
.append("svg")
.attr("width", 400)
.attr("height", 420)
.append("g")
.attr("transform", "translate(200, 10)")
.data(data)
.call(axis);
关于d3.js - 如何使 d3 tickFormat of (day, time) 但仅在日期相同时显示时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38626080/
我有一个对象数组,它将实际刻度值映射到我想要的刻度显示标签。换句话说,该对象以刻度值为键并给出显示值。 var tickMap = [{"27": 27, "28": 28, "29": 29, "3
我真的很喜欢随着时间的推移绘制事物时axis.tickFormat的默认行为,并且只是像这样创建我的x轴: var xAxisBottom = d3.svg.axis().scale(xScale);
我的 d3 图表的日期是月/日/年,例如:“10/1/2013” 我用这种方式解析它们:d3.time.format("%x").parse; 但是如何在 Axis 上编写 .tickFormat
我希望从我的图表轴中删除小数,并使用 d3.format(",d") 的 d3 格式实现我需要的,而如果数据在图表加载超过 999 的数字我需要一种不同的格式,即 d3.format(",.2s")(
我想写一个函数,它返回一个带有两行文本的刻度标签。如我所见,svg 文本标签用于文本标签。有没有办法在那里添加 tspan 之类的? 最佳答案 您可以访问由轴创建的元素:Demo d3.select(
我正在使用 D3 创建一些数据的折线图。我正在向它传递一个以毫秒为单位的日期,我想以小时和分钟为单位显示它。我已经尝试将值作为新日期(myDate)的返回值传递给它,这也不起作用。 这是我在运行时遇到
我的数据有百分比,例如 [10.1, 3.2, 5.4] d3.format("0f") 会给我 [10, 3, 5] d3.format("0%") 会给我 [1010%, 320%, 540%](
我有一个 D3 图表,我希望轴上有日期、时间的刻度(例如“1 月 20 日,上午 12:00”)。 这很容易,我只需: xAxis.tickFormat(d3.time.format('%b %-d,
我正在尝试将 d3 从版本 3 转换为版本 4,但出现此错误: Uncaught Error: invalid format: function (d) { var prefi
我正在使用 d3.js 创建一个平行坐标图,但我很难按照我的意愿格式化轴标签。 例如,我的轴之一“缓冲液浓度”绘制在对数刻度上,我通过维度变量指定了它,就像这样。 var dimensions = [
此代码适用于 JavaScript: var timeFormat = d3.timeFormat("%M:%S"); var yAxis = d3.axisLeft(y).tickFormat(ti
我是一名优秀的程序员,十分优秀!