gpt4 book ai didi

javascript - d3.js 如何在使用 nice() 时获取比例域的最小值

转载 作者:可可西里 更新时间:2023-11-01 02:19:23 28 4
gpt4 key购买 nike

我有一个散点图,我试图在其中绘制一个应该直接出现在 x 轴上的引用点,但我正在像这样创建 y 轴:

   // give ourselves some space
yMin = yMin * 0.9;
yMax = yMax * 1.1;

// set up y
var yValue = function (d) {
return d.price;
},
yScale = d3.scale.linear()
.domain([yMin, yMax])
.range([height, 0])
.nice(),
yAxis = d3.svg.axis()
.scale(yScale)
.orient("left");

问题是我想直接在 x 轴上绘制引用点。如果我不使用 .nice(),我可以像这样轻松地绘制引用点:

        var reference = svg.append('g').attr("class", "grid-reference");
reference.append("circle").attr("id", "some-reference-value")
.attr("class", "dot")
.attr("r", 9)
.attr("cx", xScale(someReferenceValue))
.attr("cy", yScale(yMin))
.style("fill", "grey")
.style("opacity", 1);

但在使用 .nice() 时我似乎无法弄清楚如何做到这一点。有没有其他方法可以解决这个问题,例如以某种方式获取 x 轴线的 y 坐标?

我开始挖掘 d3 代码以了解如何计算 nice 值并且我理解代码,但是再次计算该值似乎很浪费,更不用说重复代码的不必要维护 - 特别是考虑到我也有引用我需要沿 y 轴绘制点,并且我在 x 轴上使用对数刻度(对数 nice() 函数不同于线性 nice() 函数,因此这意味着额外的重复代码和不必要的维护) .

想法?

最佳答案

您可以在 .nice() 之后简单地查询其域的比例,然后获取该比例的最小值:

var yMin = yScale.domain()[0];

关于javascript - d3.js 如何在使用 nice() 时获取比例域的最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26680926/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com