2

下面这张图片就是我现在所拥有的。 在此处输入图像描述 下面这张图就是我想要的。(我的代码中的第一张图片,tradingview 中的第二张图片)。 在此处输入图像描述

需要明确的是:我希望单行具有多种颜色。对于我的情况,我只需要两种颜色。我需要我创建的每条新线都可以改变颜色。如果右侧的价格标签也更改为触及图表右侧部分的线条的颜色,那就太好了。

这是我的代码:

var chart = LightweightCharts.createChart(document.getElementById("Chart"), {width: 1500, height: 700});

/**
 * Creates startline and adds extra options to the lineSeries.
 */
function initChartSettings() {
    // Init lines
    priceArea = chart.addAreaSeries();
    buySellLine = chart.addLineSeries();   //LINE THAT NEEDS TWO COLORS

    // Set start position of lines
    priceArea.setData([{time: '2019-04-11', value: startPrice}]);
    buySellLine.setData([{time: '2019-04-11', value: startPrice}]);

    // Visualization edits
    priceArea.applyOptions({
        topColor: 'rgba(70, 130, 180, 0.5)',
        bottomColor: 'rgba(70, 130, 180, 0.1)',
        lineColor: '#4682B4'
    });

    // Buy sell line
    buySellLine.applyOptions({
        color: '#42f54b',               //CHANGES COLOR OF THE COMPLETE LINE, FROM BEGIN TO END.
        priceLineVisible: true,
        lastValueVisible: true
    });

    updateChartStatic();
}


/**
 * Updates the chart its lines.
 */
function updateChartStatic() {
    setTimeout(() => {
        priceArea.update({
            time: yearMonthDay,   //How this works should not matter for question
            value: newPrice,      //Same as above
        });

        // Updates the price line of the chart.
        buySellLine.update({
            time: yearMonthDay,
            value: currentMovingAverage       //Even though it would be nice to do the below commented thing...
            // color: 'red or green (example)'
        });

        buySellLine.applyOptions({
            color: changeLineColor(currentMovingAverage, lastMovingAverage)  // CHANGES COMPLETE LINE :(
        });
    }, 1);
}

changeLineColor() 函数正在执行 if 语句,这与为线条设置颜色无关。

4

1 回答 1

3

现在不可能,但是这个功能有问题https://github.com/tradingview/lightweight-charts/issues/195。您可以订阅它以在修复时收到通知(甚至提出建议和/或提供更改的 PR)。

于 2020-04-28T19:19:02.867 回答