javascript - Plotly.js 痕迹未显示

标签 javascript plot

我正在尝试使用 Plotly.js 创建一些历史加密货币价格图表,但遇到了我的数据未显示在创建的图表上的问题。我正在从 https://plot.ly/javascript/ajax-call/ 的示例代码构建我的代码但是将它用于我自己的数据源和 plotly-latest.min.js 的本地副本。我正在使用我的一小部分数据,并且只有一个跟踪来使代码正常运行,并且我在处理数据和创建跟踪后放置了 console.log 语句,这些语句显示我的数据格式正确判断通过示例代码及其数据集。我已将图表的范围设置为我的数据范围,但尽管在工作示例代码后对其进行建模,但在图表创建时我仍然看不到图表。我哪里错了?

我的代码:

<!DOCTYPE html>
<html>
<head>
<script src="plotly-latest.min.js"></script>
</head>
<body>
<div id="myDiv" style="width: 480px; height: 400px;"></div>
<script>
  function makePlot() {
    Plotly.d3.csv("bitcoin.csv", function(data){ processData(data) } );
  }

  function processData(allRows) {

    var Date = [], Open = [], High = [], Low = [], Volume = [], MarketCap = [];

    for (var i=0; i<allRows.length; i++) {
        row = allRows[i];
        tmpDate = row['Date;Open;High;Low;Close;Volume;MarketCap'].split(';')[0]
        Date.unshift( tmpDate.split('/')[2] + '-' + tmpDate.split('/')[1] + '-' + tmpDate.split('/')[0]);
        Open.unshift( row['Date;Open;High;Low;Close;Volume;MarketCap'].split(';')[1]);
        High.unshift( row['Date;Open;High;Low;Close;Volume;MarketCap'].split(';')[2]);
        Low.unshift( row['Date;Open;High;Low;Close;Volume;MarketCap'].split(';')[3]);
        Volume.unshift( row['Date;Open;High;Low;Close;Volume;MarketCap'].split(';')[4]);
        MarketCap.unshift( row['Date;Open;High;Low;Close;Volume;MarketCap'].split(';')[5]);
    };
    makePlotly(Date, Open);
    }

    function makePlotly(Date, Open) {
        var plotDiv = document.getElementById("plot");
        var traces = [{
            Date: Date,
            Open: Open}
        ];
        console.log(traces);

        var layout = {
        xaxis: {
            type: 'date',
            title: 'Date',
            range: ['2017-11-12', '2017-11-22']
        },
        yaxis: {
            title: 'Price (USD)',
            range: [4000, 10000]
        },
        title: 'Cryptocurrency Historical Prices'
        }
        Plotly.newPlot('myDiv', traces, layout);
    }


  makePlot();
</script>

</body>
</html>

bitcoin.csv(1 列)

Date;Open;High;Low;Close;Volume;MarketCap
22/11/2017;8077.95;8302.26;8075.47;8253.55;3633530000;134851000000
21/11/2017;8205.74;8348.66;7762.71;8071.26;4277610000;136967000000
20/11/2017;8039.07;8336.86;7949.36;8200.64;3488450000;134167000000
19/11/2017;7766.03;8101.91;7694.10;8036.49;3149320000;129595000000
18/11/2017;7697.21;7884.99;7463.44;7790.15;3667190000;128425000000
17/11/2017;7853.57;8004.59;7561.09;7708.99;4651670000;131026000000
16/11/2017;7323.24;7967.38;7176.58;7871.69;5123810000;122164000000
15/11/2017;6634.76;7342.25;6634.76;7315.54;4200880000;110667000000
14/11/2017;6561.48;6764.98;6461.75;6635.75;3197110000;109434000000
13/11/2017;5938.25;6811.19;5844.29;6559.49;6263250000;99029000000
12/11/2017;6295.45;6625.05;5519.01;5950.07;8957350000;104980000000

最佳答案

我猜应该是你的变量traces导致了问题

var traces = [{
    x: Date, //not Date: Date
    y: Open  //not Open: Open
}];

关于javascript - Plotly.js 痕迹未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47540421/

相关文章:

date - matplotlib plot_date()在指定日期添加垂直线

python - Python 中的 Gamma 函数图

python - 如何绘制时间图表 (mm :ss) in Matplotlib (formatting output values)

javascript - asp.net MVC 从 javascript 调用 Controller

javascript - 在没有变量声明的情况下使用异步迭代

r - 绘图轴标题上的特殊字符和上标

r - 重写 plot.factor 的技巧?

javascript - 是否可以通过适当的 JavaScript 字符串转义来利用 JSON 响应进行 XSS 攻击?

JavaScript 代码改进

javascript - 在javascript中添加方括号到字符串的开头和结尾