Hi,
viel kann ich hier nicht beisteuern, nur das: Der CanvasRenderingContext2D bietet eine recht simple Programmier-Schnittstelle, dafür opfert man Leistungsfähigkeit. Für performance-kritische Anwendungen ist der WebGLRenderingContext gedacht. Eine weitere Alternative ist SVG, das skaliert nicht mit der Anzahl der Pixel, sondern mit der Anzahl der Objekte in der Szene. Für interaktive Diagramme ist SVG prädestiniert.