Lepiej użyć WebGL czy Three.js (wiem, że Three.js zawiera WebGL, ale chodzi o łatwość wyświetlania 2D)?
W czystym WebGL bez problemu możesz wyświetlać 2D. Nawet łatwiej 2D niż 3D bo odchodzą te wszystkie macierze projekcji, kamery itp... Problemem może być co najwyżej to, że interfejs WebGL jest dośc niskopoziomowy, i na początku może być trudno pojąć pewne koncepcje (no i dochodzi pisanie shaderów), czy nawet napisać poprawnie kod od zera.
ThreeJS jest wygodniejszy w obsłudze i łatwy. Nie wiem natomiast czy jest jakieś specjalne wsparcie do 2D w ThreeJS (ale na upartego przecież mogłbyś potraktować punkty 2D jako punkty w 3D, które leżą na płaszczyźnie prostopadłej do kamery... ).
Poza tym, jeśli to 2D to możesz również skorzystać z innych rzeczy, np. biblioteka Pixi, która też ma wsparcie WebGL (z automatu, nie musisz o tym myśleć).
Albo rysować to na zwykłym Canvasie w kontekście 2D (bez przyśpieszenia sprzętowego, ale nie zawsze jest potrzebne, nie wiem co robisz).
Ew. w jakimś SVG to wyświetlać.
Lepiej
zależy co masz na myśli pisząc "lepiej".