微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

d3fc 折线图不是从 y 轴开始

如何解决d3fc 折线图不是从 y 轴开始

我在 React 应用程序中有一个 d3fc webgl 折线图,由以下代码片段创建。

const ma = fc
        .indicatorMovingAverage()
        .value(d => d.value)
        .period(50)

    const maData = ma(data)

    const newData = data.map((d,i) => ({ ma: maData[i],...d }))
    
    const strokeColorLineseries = fc
        .webglstrokeColor()
        .data(newData)
        .value(d => [1,1,1])

    const strokeColorMaSeries = fc
        .webglstrokeColor()
        .data(newData)
        .value(d => [1,1])

    const lineseries = fc
        .seriesWebglLine()
        .mainValue(d => d.value)
        .crossValue(d => d.timestamp)
        .linewidth(3)
        .decorate(program => {
            strokeColorLineseries(program);
        });

    const maLineseries = fc
        .seriesWebglLine()
        .mainValue(d => d.ma)
        .crossValue(d => d.timestamp)
        .linewidth(1.5)
        .decorate(program => {
            strokeColorMaSeries(program);
        });

    const areaSeries = fc
        .seriesWebglArea()
        .baseValue(d => 0)
        .mainValue(d => d.value)
        .crossValue(d => d.timestamp);

    const multi = fc
        .seriesWebglMulti()
        .series([areaSeries,lineseries,maLineseries]);

    const xExtent = fc
        .extentLinear()
        .accessors([d => d.timestamp]);

    const yExtent = fc
        .extentLinear()
        .accessors([d => d.value]);

    // Todo high border in xExtent and yExtent is a string,so padding does not work

    const chart = fc
        .chartCartesian(d3.scaleLinear(),d3.scaleLinear())
        .yOrient("left")
        .xDomain(xExtent(data))
        .yDomain(yExtent(data))
        .xLabel('Timestamp')
        .yLabel('value')
        .webglPlotArea(multi)

    const e1 = d3.select(el)
        .datum(newData)
        .call(chart);

然而,绘图从屏幕中间开始,而图表本身覆盖了整个屏幕。 The result looks like this:

This post describes the same problem,but the solution did not work for me

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?