【发布时间】:2021-09-10 05:53:09
【问题描述】:
我是 d3 和前端的新手 你能看看我的轴上没有显示最大值吗?就像没有 2015 年或 Y 尺度上没有 39.50 一样,即使 d3.max 在数组中看到它们。
https://codepen.io/DeanWinchester88/pen/QWgGMja
const xScale = d3.scaleLinear()
.domain([ d3.min(years), d3.max(years) ])
.range([paddings.paddingLeft,w - paddings.paddingRight - paddings.paddingLeft]);
const xAxis = d3.axisBottom(xScale).tickFormat(d3.format("d"));
svg.append("g")
.attr("transform", "translate(0," + (h - paddings.paddingLeft) + ")")
.attr("id","x-axis")
.call(xAxis);
const yScale = d3.scaleLinear()
.domain([ parseInt(d3.min(timings)), parseInt(d3.max(timings))])
.range([h - paddings.paddingBottom, paddings.paddingTop]);
const yAxis = d3.axisLeft(yScale).tickFormat( (d) => `(${d.toFixed(2)}`);
svg.append("g")
.attr("transform", "translate(" + paddings.paddingLeft + ",0)")
.attr("id","y-axis")
.call(yAxis)
【问题讨论】:
-
您的 y 轴在 39.5 之前停止(无论刻度如何)的原因是您使用 parseInt 它为您的比例提供了一个与您想象的不同的域。轴中的刻度基于刻度的数量和值的圆度,如果你想覆盖这些,你可以使用axis.tickValues,我现在找不到这个效果的答案,我出门了,但会今天晚些时候再看看。
-
用年份来缩放 X 没有解析,但我仍然看不到 2015 年
标签: d3.js scatter-plot