2014-01-23 10 views
0

에서 csv 파일에서 마지막 10 개 라인 :넣기 <a href="http://dygraphs.com/tutorial.html" rel="nofollow">tutorial</a>에서 예제 코드를 사용하여 dygraphs

<html> 
<head> 
<script type="text/javascript" 
    src="dygraph-combined.js"></script> 
</head> 
<body> 
<div id="graphdiv2" 
    style="width:500px; height:300px;"></div> 
<script type="text/javascript"> 
    g2 = new Dygraph(
    document.getElementById("graphdiv2"), 
    "temperatures.csv", // path to CSV file 
    {}   // options 
); 
</script> 
</body> 
</html> 

내가 대신 전체 파일의 temperatures.csv에서 마지막 10 줄을로드하고 싶습니다. dygraphs의 CSV 파서에게이 작업을 지시 할 수 있습니까?

답변

1

제한을 설정하는 그런 옵션이 없습니다 및/또는 소스 코드 https://github.com/danvk/dygraphs/blob/master/dygraph.js#L2942

그러나 당신이 이것을 달성하기 위해 코드에서 기능 Dygraph.prototype.parseCSV_을 무시할 수에 따라 오프셋.

// Save old function 
var parseCSV_ = Dygraph.prototype.parseCSV_; 

Dygraph.prototype.parseCSV_ = function(data) { 
    // Get all data 
    var ret = parseCSV_(data); 

    // Return only last 10 items 
    return ret.slice(ret.length - 10); 
}; 

g2 = new Dygraph(
    document.getElementById("graphdiv2"), 
    "temperatures.csv", // path to CSV file 
    {}   // options 
); 

P.S. 예 this 등에

새로운 CSV 파일을 사용하여로드 속도를 높이려면 마지막 10 개 항목 만 사용하는 것이 좋습니다. 가능한 경우 백엔드에서 생성하십시오.

+0

이 사례는 다음과 같습니다. 2 년 동안 데이터가 포함 된 긴 파일이 있습니다. 이 파일은 10 분마다 새 데이터로 업데이트됩니다. 마지막 날, 주, 월의 데이터를 보여주는 그래프를 만들고 싶습니다. 매번 별도의 CSV 파일을 만드는 것이 여전히 더 효율적입니까? 이것은 저장 장치 용 USB 드라이브가있는 RaspberryPi 컴퓨터에서 실행되므로 쓰기도 최소화하고 싶습니다. – shrx

+1

일, 주 및 월을 1 페이지에 표시하려면 1 개의 파일을 사용했습니다. 따라서 백엔드에서는 지난 달 데이터와 다른 (모든) 데이터 만 별도의 파일로 생성합니다. 예를 들면'temperatures-month.csv'와'temper.csv'입니다. 그런 다음 달 데이터로 파일을로드하고 접근 방식으로 하루 또는 한 주 동안 제한하십시오. 그러나이 방법을 사용하면 제한을 한 번만 사용할 수 있습니다. 줄 수를 설정하는 옵션을 허용하도록 다시 작성할 수 있습니다. –

관련 문제