tl; dr 파일 대신 다른 javascript 변수에서 직접 d3.js 데이터를 가져 오려면 어떻게해야합니까?javascript 변수에서 d3.js로 데이터 가져 오기
긴 버전 :
이 질문은 두 개의 다른 장소 here 및 here에 요청했지만 답변은 오히려 ... 부진했다, 그래서 내가 좀 더 구체적으로 질문을 거라고 생각했다.
처음으로 d3.js로 차트를 만들려고하고 있지만 아래의 외부 파일이 아닌 다른 자바 스크립트 변수 (배열)에서 데이터를로드해야합니다. 난 레일 4 애플 리케이션 안에 자바 스크립트를 사용하고 있습니다. 이미 설정 한 자바 스크립트 변수에서 직접 데이터를로드 뭔가, 이런 일에
d3.csv("sp500.csv", type, function(error, data) {
x.domain(d3.extent(data.map(function(d) { return d.date; })));
y.domain([0, d3.max(data.map(function(d) { return d.price; }))]);
x2.domain(x.domain());
y2.domain(y.domain());
focus.append("path")
.datum(data)
.attr("class", "area")
.attr("d", area);
focus.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0," + height + ")")
.call(xAxis);
focus.append("g")
.attr("class", "y axis")
.call(yAxis);
context.append("path")
.datum(data)
.attr("class", "area")
.attr("d", area2);
context.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0," + height2 + ")")
.call(xAxis2);
context.append("g")
.attr("class", "x brush")
.call(brush)
.selectAll("rect")
.attr("y", -6)
.attr("height", height2 + 7);
});
: 내 시도
var data = [];
for (i = 0; i < Math.round(totaltime/interval); i++)
{
data[i] = {
"x": i,
"y": reactionratebyinterval[i]
};
}
그러나 모든 유지
나는이를 변환 할 내가 파일에서 가져 오지 않을 때 정확히 무엇이 바뀌 었는지 이해하고 있다고 생각하지 않기 때문에 실패했다. 내가 찾을 수있는 모든 예제는 두 가지 유형 중 하나입니다 - 중 데이터가 직접 같은 코드의 그래프에 입력 :
var lineData = [{
'x': 1,
'y': 5
}, {
'x': 20,
'y': 20
}, {
'x': 40,
'y': 10
}, {
'x': 60,
'y': 40
}, {
'x': 80,
'y': 5
}, {
'x': 100,
'y': 60
}];
또는 그것에서 수입 내가 위에서 한 코드를 사용 어떤 종류의 파일. 하지만 다른 변수에서 가져올 필요가 있습니다. 언제든지 크기와 내용이 변경 될 수 있습니다. 내가 어떻게 그럴 수 있니?
! 내 차트는 꺾은 선형 차트입니다. Y 축에 날짜가 있고 X 축에 전체 숫자가 있으면 도움이됩니다. 데이터를 채울 코드는 다음과 같습니다. 'var lineData = [];"x": Date.now() - i * 3600, "y": reactratebyinterval (0 = 0; i <수학 시간 (요일)); [i] }; }' –
데모를 작성하기 만하면됩니다. 자신의 라인 데이터를 변경하고 결과를 확인할 수 있습니다. :) http://jsfiddle.net/reg027/4jpmbL88/ – xiongbo027