這是我的代碼:
d3.csv('stockdataToPlot.csv', function(d){
return {date : d3.timeParse("%Y-%m-%d")(d.Date), aapl : d.AAPL,
aapl_sma: d.SMA_AAPL, tsla : d.TSLA, tsla_sma: d.SMA_TSLA}
}).then(plot_data);
我想從中洗掉 NaN 值,
如果有人幫助我正確合并此示例d.SMA_AAPL,d.SMA_TSLA我將不勝感激:
d3.csv('stockdataToPlot.csv', function(d){
var data = d.filter(function(e){
if(isNaN(e.value)){
return false;
}
e.value = parseInt(e.value, 10);
return true;
});
return {date : d3.timeParse("%Y-%m-%d")(d.Date), aapl : d.AAPL,
aapl_sma: data.SMA_AAPL, tsla : d.TSLA, tsla_sma: data.SMA_TSLA}
}).then(plot_data);
當前的錯誤是TypeError: d.filter is not a function。這是令人困惑的,因為 .filter 將資料陣列作為引數,它應該d在第一行中參考。
這是來自檔案的一個很好的緊湊代碼行:這是
const result = words.filter(word => word.length > 6);如何改編的?
var data = d.filter(?? => ??.isNan(??));?
我確定我想多了,但我是 javascript 新手,我不完全理解它是如何作業的。在蟒蛇熊貓我只是做data.dropna():(
uj5u.com熱心網友回復:
固定的:
d3.csv('stockdataToPlot.csv', function(d){
function removeNaN(e,c){
if(e>0){return e}else{return c}
}
return {date : d3.timeParse("%Y-%m-%d")(d.Date), aapl : d.AAPL,
aapl_sma: removeNaN( d.SMA_AAPL,d.AAPL), tsla : d.TSLA, tsla_sma: removeNaN( d.SMA_TSLA,d.TSLA)}
}).then(plot_data);
在我的情況下,NaN 注冊為“”,當使用 傳遞時默認為 0。幸運的是,我的資料中沒有任何小于或等于 0 的值。我沒有洗掉它們,而是將它們替換為與收盤價相同的值,因為它只是一個移動平均線。這并不理想,但現在還可以。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/326016.html
標籤:javascript d3.js
