SVG

2015-01-22 3 views
17
내가 파이썬 백엔드를 사용하여 브라우저에서 차트를 그릴 수 있습니다

(이 여기에 문제가되지 않을 수). 이를 달성하기 위해 JQPlot, D3, Google Charts와 같은 수많은 라이브러리가 있습니다. 당신이 그들을 분류하는 경우SVG

는하지만, 그들은 하나 HTML5 캔버스 기반 또는 SVG 기반으로합니다. 둘 다 자신의 공간에서 중요한 기술입니다. 그러나

for charting as a subject, shall I go with SVG based libraries or 
HTML5 Canvas based libraries. What are downside and benefits of 
both approaches. 

나는 차트와 사전 경험이없는 내가 프로젝트를 시작한 후 벽 을 공격하고 싶지 않아요. 데이터의 많은 양의와

+0

MSDN에서이 기사를 살펴보십시오. https://msdn.microsoft.com/en-us/library/ie/gg193983(v=vs.85).aspx – Adi

답변

28

프로젝트는 캔버스를 선호 할 수있다.

  1. 당신의 DOM 트리의 크기가 폭발

  2. 성능 문제

: SVG의 접근 방식은 일반적으로 이어질 수 점수 당 DOM 노드를 (당신이 경로를하지 않는 한) 생성

경로를 사용하면이 문제를 해결할 수 있지만 상호 작용이 없어집니다.

는 주식 차트를 구축한다고 가정 해 봅시다. 차트에 대해 이야기하고 있다면, 최대 5 년 동안 그리고 무역 데이터 샘플의 끝만 말해 보면 대답이 분명히 SVG라고 생각합니다. Walmart의 역사적인 데이터를 거래 첫날부터 보거나 분당 전체 거래 정보를 보는 것에 대해 이야기하는 경우 SVG를 신중하게 살펴야합니다. 아마도 하나의 샘플을 하나의 SVG 노드로 옮기면 SVG가 떨어져 나올 때마다 멋진 메모리 관리와 페치 - 온 - 디맨드 방식을 사용해야 할 것입니다.

  • 은 당신이 당신에 추가 할 수 있습니다
  • /노드를 제거
  • 일반적인 이벤트 핸들러를 사용할 수있는 유지 모드 API
  • 입니다 : 상호 작용는 요구 사항이

    경우, SVG는 쉽게 주어진 가장자리를 가지고 쉽게 등.

상호 작용이 필요한 경우 물론, y는 경로 붕괴와 같이 SVG를 확장 할 수있는 메커니즘에 위배되므로 여기에는 고유 한 긴장이 있습니다.

극단의 트레이드 오프있을 것입니다. 크기가 작 으면 SVG 핸즈 - 다운입니다. 크기가 크고 상호 작용이 없으면 경로 그림 만 있거나 Canvas를 사용하는 SVG입니다. 크기가 크고 상호 작용이 필요한 경우 캔버스 또는 까다로운 SVG로 이동해야합니다. 어느 경우이든 복잡합니다.

일부 라이브러리는 거기 모두 캔버스를 제공하고 SVG는 ZingChartDojo로 렌더링합니다. 다른 사람들은 두 가지 옵션 중 하나만 사용하는 경향이 있습니다.

관련 문제