首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >缩放时的再缩放轴

缩放时的再缩放轴
EN

Stack Overflow用户
提问于 2018-07-03 14:12:26
回答 1查看 71关注 0票数 1

我正在创建一个类似于此的图形:https://bl.ocks.org/mbostock/34f08d5e11952a80609169b7917d4172

然而,当我放大到某一段时,我想将Y轴缩放到局部(显示)最大值,而不是全局轴。例如,当我放大2009到2010年间的数据时,顶部有很多空白处。

基本上,我想要达到的是得到我缩放到的范围,并在这个范围内得到最大值。

另一种可能是在侧面添加另一个刷子条,但从长远来看,这对用户是非常不方便的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-04 00:04:01

您只需为此更改y缩放域即可。

首先,让我们创建一个名为globalData的全局变量,并将数据数组关联到它。注意:这是--不是--正确的方法,但是我要这么做,因为brushedzoomed函数位于d3.csv之外,这是异步的,重构它需要一些工作。因此,它将是您的作业重构它。

然后,在brushedzoomed函数中,我们根据刷子过滤数据:

代码语言:javascript
运行
复制
var filteredData = globalData.filter(function(d){
    return d.date > x.domain()[0] && d.date < x.domain()[1]
});

在此之后,我们计算新的y域:

代码语言:javascript
运行
复制
y.domain([0, d3.max(filteredData, function(d){
    return d.price
})]);

别忘了再次调用轴。

这是更新的bl.ocks:https://bl.ocks.org/GerardoFurtado/17fd6b82324e355c768992e78140fe9a/33b9a6c58265454864a9d921df032e708fad5237

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51156782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档