在 NVD3 中按另一比例绘制一张图表

Draw one chart on the scale of another in NVD3

我有一张由 nvd3 图书馆制作的图表:

https://github.com/novus/nvd3/blob/master/examples/scatterChart.html

看起来像这样:

我想以与整个图表相同的比例分别绘制带有彩色区域的其他图表。因此,也就是说,橙色区域将显示在另一个图表上,而没有任何其他颜色区域。我想我需要获得包含所有彩色区域的图表的缩放比例,并将其输入到每个单独的区域中。我基本上想通过设置初始比例来避免重新缩放。任何建议将不胜感激。


更新:

我尝试使用答案中提出的方法将所有其他簇的颜色设置为 whitetransparent 并仅保留所需的彩色区域,但我无法实现这是由于我也问过的另一个问题:React component instantiation issue

因此,我尝试深入研究 nvd3 scatterChart 代码,因为我们可以单击图例圆圈,相应的彩色区域会消失。所以,通过调用一些特定的 nvd3 scatterChart 函数,我们可以让这些区域消失,而无需大量新编写的代码,但我很难搞清楚。

如果您绘制完全相同的图表,但将所有区域(只有一个区域)的颜色更改为透明或白色,会怎样?

答案原来很简单。这是代码:

...
if (this.props.type === "marker") {
      const domainX = [-174, 172];
      const domainY = [169, -184];
      chart.xDomain(domainX);
      chart.yDomain(domainY);
    }
    d3.select(node)
        .datum(data_func)
        .call(chart);
...

我只需要使用 chart.xDomainchart.yDomain 函数。以下线程回答了我的问题:

Changing the y-axis scale in nvd3