【问题标题】:d3.js Line Chart -> dont get it zoomingd3.js 折线图 -> 不要放大
【发布时间】:2021-03-29 09:57:57
【问题描述】:

我尝试使 d3.js 图表缩放。我知道我调用了缩放功能,但我真的不知道如何重绘图表。 我使用了一些示例,但它们都与我的图表非常不同。

也许有人可以帮助我,或者给我一个提示。

第一步,我只想缩放 X 轴。

我已将我的尝试上传到 plunker:Plunker

function zoomed() {
    console.log('zoom');
      //var t = d3.event.transform;
      //x.domain(t.rescaleX(x).domain());
      //Line_chart.select(".line").attr("d", line);
      //focus.select(".axis--x").call(xAxis);
    x.range([margin.left, width - margin.right]
                .map(d => d3.event.transform.applyX(d)));

            theChart.select(".path")
                .attr("d", line);

            theChart.select(".x-axis")
                .call(d3.axisBottom(x)
                    .tickSizeOuter(0));
    }

【问题讨论】:

    标签: d3.js zoom-sdk


    【解决方案1】:

    您的代码有错误。在Plunker 中查看它已修复

    修复 d3 缩放初始化:

    var zoom = d3.zoom().scaleExtent([1, Infinity]).on("zoom", () => zoomed(theChart));
    

    修复缩放回调:

    const zoomed = chart =>  chart.attr('transform', d3.event.transform);
    

    【讨论】:

    • 谢谢迈克尔,但现在整个图表正在缩放(和移动)。我怎样才能实现 x 和 y 轴是固定的(不要移动)而只是 x 轴的比例是改变的?像这个例子:link
    • 在一个 下放置您想要缩放的内容,在另一个 下放置您想要保持原位的内容。在“缩放”回调中,仅将 trasform 应用于第一个 元素
    • 我想我不知道该怎么做,变量和函数太多了,我用下面的代码试了一下:link
    • 你能帮帮我吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多