d3js:在有两个y轴时进行缩放

马克西姆斯S

参考:https : //github.com/mbostock/d3/wiki/Zoom-Behavior

//make zoom
var zoomFirst = d3.behavior.zoom()
  .x(x)
  .y(y1)
  .scaleExtent([0, 3])
  .size([w, h])
  //.center([w/2+200, h/2-200])
  .on("zoom", zoomedFirst);

function zoomedFirst() {
  svgContainer.select(".x.axis").call(xAxis);
  svgContainer.selectAll(".y.axis.axisLeft").call(yAxisLeft);
  //set y2's scale manually
  svgContainer.select(".price")
    .attr("d", line1(priceData))
    .attr("class", "price");
  svgContainer.select(".difficulty")
    .attr("d", line2(difficultyData))
    .attr("class", "difficulty");
}

d3.behavior.zoom()支持x和y轴的自动缩放。但是,我必须同时缩放两个y轴。触发zoom()时,我可以获取当前信息scaletranslate信息,但是我无法弄清楚如何使用它们为第二个y轴()设置合适的比例d3.event.scaled3.event.translatey2

我也在看https://github.com/mbostock/d3/wiki/Quantitative-Scales

由于y1的范围是由自动调整的zoom,因此,如果有一种方法可以获取y1的当前范围,则可以获取其最小值和最大值并y2根据它们来设置的范围。然而,该文件没有指定一种方式来获得range给定的一个scale对象。

音乐

调用y1.range()(不带任何参数)将返回[min, max]标度的。

文档

如果未指定值,则返回标尺的当前输出范围。

D3中的大多数访问器函数都是这样工作的,如果您在不带任何参数的情况下调用它们,则它们会返回给您(获取)值;如果在带参数的情况下调用它们,则将设置您的值并返回this对象以便于链接:

d3Object.propertyName = function (_) {
    if (!arguments.length) return propertyName;
    propertyName = _;
    return this;
}

但是,该zoom行为会更改刻度domain而不是range

文档

指定x比例尺,缩放时应自动调整其域。

因此,你不需要获取/设置range,而是在domain天秤y1y2y2.domain(y1.domain())

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在d3js中的两个y轴之间绘制一条线

d3js在一个方向上缩放,在两个方向上平移

散景,两个y轴,禁用一个轴进行缩放/平移

在D3js中使用缩放/平移添加多个y轴

在d3js中连接两个矩形

d3.js在Y轴上附加来自数据集的两个标签

在 matplotlib 上缩放两个不同的 y 轴的问题

如何在具有一个 x 轴和两个 y 轴的图中将误差线缩放到右侧 y 轴的尺寸

在一个图中绘制两个折线图时,在y轴上显示不同的缩放比例

在R中绘制两个ecdf进行比较时,如何将轴缩放为较大的矢量?

D3js 中 Y 轴的问题

d3js条形图:两个条形可以代表两个不同的类别/变量吗?

用相同的d3js代码制作两个饼图

D3.js缩放和平移-锁定y轴

D3.js笔刷和缩放以通过缩放范围的值重新缩放Y轴

y轴和y轴标签d3js之间的空间

Matplotlib:具有两个不同 y 轴的 2D 子图

具有两个Y轴的Angular的图表库

带有两个Y轴的ggplot

为什么在 Chart.js 中放置两个带有时间笛卡尔轴的数据集会导致两个 Y 轴刻度集?

d3js缩放笔划宽度

熊猫:具有两个条和两个y轴的条形图

ggplot 对于两个不同的数据集有两个不同的 y 轴

当 d3js 中有数据重叠时,如何在 x 轴上显示标签?

更新x轴d3js

IMG Silde change 功能在有两个功能时停止工作

C# 在有两个 or 条件时不会跳出 do While 循环

带有 D3 js 的 A 帧无法添加 x、y、z 轴坐标点并且缩放不起作用

从具有两个y-轴的两个数据框创建图