그래서 잘 작동하는 하나의 꺾은 선형 차트가 있으므로 이제 교차 필터링으로 그래프 간의 상호 작용을 볼 수 있도록 그래프를 2 개 더 추가하려고합니다.
막대 차트에서 범위 간격을 선택하면 다음 오류가 발생합니다.
VM357 dc.js:3697 Uncaught TypeError: Cannot read property 'domain' of undefined
at prepareXAxis (VM345 dc.js:3697)
at drawChart (VM345 dc.js:4426)
at Object._chart._doRedraw (VM345 dc.js:4415)
at Object._chart.redraw (VM345 dc.js:2138)
at Object.dc.redrawAll (VM345 dc.js:279)
at Object._chart.redrawGroup (VM345 dc.js:2190)
at Object._chart.applyBrushSelection (VM345 dc.js:4296)
at VM345 dc.js:4289
at VM345 dc.js:1241
작업 데모 + 코드 :
https://blockbuilder.org/ninjakx/ad4ab375e1a14f3e151c5b13a60ecef5
꺾은 선형 차트에는 두 가지 유형이 있습니다.
1) ( Line no : 396-434 )에 composite chart
정의되어 있습니다 .function comp_chart
2) Single Line chart
위의 옆에 정의되어 있습니다.
따라서 모든 그래프가 라인 558 에서 렌더링됩니다 . 이 두 종류의 꺾은 선형 차트는 function setup()
라인 번호 529 에서도 렌더링됩니다 .
그것은 bar chart
아래에서 정의됩니다composite2
이 오류를 해결하는 방법을 모르겠습니다.
편집 : 지금 나를 위해 작동하는지 확인하십시오.
죄송합니다. 귀하의 프로젝트를 디버깅 할 시간이 없기 때문에 완전한 답변이 아닙니다. 특정 문제를 진단했으며 제안 사항 만 있습니다.
발생한 특정 문제는 두 개의 다른 차트를 동일한 div로 초기화했지만 한 번에 하나만 활성화된다는 것입니다.
var composite = dc.compositeChart("#line-chart");
var composite2 = dc.barChart("#line-chart2");
var linechart = dc.lineChart("#line-chart")
시작하면 복합 차트가에서 초기화 #line-chart
되었지만 다른 선 차트는 초기화되지 않았습니다. 불행히도 dc.js는 여전히 그것을 그리려고 할 것입니다! 그래서 그것이 충돌하는 이유입니다.
내 제안은 복합 차트 만 사용하고 개별 상태를 표시 할 때 하나의 하위 차트로만 다시 초기화하는 것입니다.
그렇지 않으면 오류가 발생하기 쉬운 차트 레지스트리에서 차트를 추가하고 제거하는 지루한 과정을 거쳐야합니다.
먼저 개별 상태로 전환 한 다음 막대 차트에서 필터링하면 동일한 오류가 발생하지 않지만 여전히 합성을 읽고 / 업데이트하려고하기 때문에 범례 토글 코드에 문제가 발생합니다. 더 이상 존재하지 않더라도 차트.
div에서 차트가 활성 상태 인 모든 코드를 조건화하는 것은 골치 아픈 일이라고 생각하며, 특히 꺾은 선형 차트 기능이 복합의 엄격한 하위 집합이기 때문에 div 당 하나의 차트 만 갖는 것이 더 쉬울 것입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다