Reflex, XY 오픈소스 공개: Rust 기반 Python 차트 라이브러리로 1억 포인트 차트도 인터랙티브하게
Reflex AI가 인터랙티브 2D 시각화를 위한 Apache-2.0 라이선스의 Python 차트 라이브러리 XY를 출시했습니다. 이 라이브러리는 네이티브 Rust 코어와 WebGL2를 사용하여 1억 개의 포인트가 포함된 차트에서도 응답성을 유지하며, 렌더링 시간은 약 0.08초입니다. 이 라이브러리는 pip install xy로 설치할 수 있으며 Python 3.11 이상이 필요합니다.
Reflex AI가 XY를 오픈소스로 공개했습니다. XY는 Apache-2.0 라이선스의 Python 차트 라이브러리로, 대화형 2D 시각화를 위한 것입니다. 이 라이브러리는 행마다 그리기 객체를 하나씩 생성하고 수십만 개의 포인트를 넘어서면 느려지는 기존 Python 차트 스택의 성능 저하 문제를 해결합니다. XY는 렌더링 작업을 네이티브 Rust 코어로 옮기고, JSON 대신 브라우저로 형식화된 이진 버퍼를 보내며, WebGL2를 통해 그립니다. 벤치마크 결과에 따르면 XY는 10,000개 포인트에서 0.071초, 1억 개 포인트에서 0.081초의 렌더링 시간을 유지합니다. 이 라이브러리는 초기 알파 버전(0.0.1)이며, pip install xy로 설치할 수 있고 Python 3.11 이상이 필요합니다. 마크, 축, 범례, 툴팁, 주석의 선언적 구성을 제공하며, 산점도, 선, 영역, 히스토그램, 상자, 바이올린, ECDF, 히트맵, 헥스빈, 등고선을 포함한 14개의 차트 패밀리를 제공합니다. 이 라이브러리는 Python ColumnStore에 정확한 f64 열을 유지하여 호버, 선택, 줌 드릴다운 시에도 원래 행을 반환합니다. XY는 1,000만 개 포인트의 대화형 산점도를 258 KiB의 HTML로 내보내는 반면, Plotly는 259 MiB입니다. Apple M5 Pro에서의 벤치마크에 따르면 XY는 1M 포인트에서 0.084초, 10M에서 0.083초, 50M에서 0.076초, 100M에서 0.081초를 기록했으며, Matplotlib와 Plotly는 더 높은 수치에서 실패하거나 크게 느려졌습니다. Reflex는 또한 100억 개 포인트의 전체 OpenStreetMap 데이터셋을 렌더링한다고 보고합니다. 이 라이브러리에는 마이그레이션 경로가 포함되어 있습니다: import xy.pyplot as plt는 일반적인 Matplotlib pyplot 코드를 실행하며, reflex-xy 어댑터는 JavaScript나 iframe 없이 차트를 Reflex 구성 요소로 변환합니다.
출처: MarkTechPost —
원문
