사용자가 데이터를 그래프로 시각화할 수 있도록 하기

수학 관련 설명에 인라인 LaTeX을, 다이어그램 작성에 mermaid를 지원하는 Discourse의 기능을 정말 좋아합니다. 다만, 작은 데이터 조각을 가져와서 x/y 플롯을 만드는 기능은 항상 아쉬웠습니다. 스프레드시트에 데이터를 넣고 png로 내보내는 과정은 너무 번거로워서요. mermaid 테마 컴포넌트 소스를 좀 들여다본 끝에 plotly.js용 테마 컴포넌트를 만드는 데 어느 정도 성공했습니다. 링크는 다음과 같습니다:

이것이 활성화되면 다음과 같이 산점도(scatter plot)를 만들 수 있습니다:

```plotly
data:
  - x: [0,300,400]
    y: [0,950,1050]
    name: Old mempool
  - x: [0,200,400]
    y: [0,700, 1150]
    name: New mempool
layout:
  title: Test plot
```

위와 같은 이미지가 생성됩니다.

물론, plotly.js에 data/layout 값을 전달하여 plotly.js로 만들 수 있는 다른 종류의 차트도 모두 만들 수 있을 것입니다.

특히 좋은 점은 플롯이 기본적으로 인터랙티브하다는 것입니다. 마우스를 올리면 실제 점의 값을 볼 수 있고, 확대/축소도 가능하며, png로 저장할 수도 있습니다. 물론 원본 데이터도 게시글 소스에 그대로 남아 있습니다.

아직 라이브로 배포하지는 않아 테스트 환경에서는 잘 작동하는 것 같다고만 말할 수 있습니다. 하지만 미리 공유하고 싶었고, 특히 저 대신 이 프로젝트의 유지보수를 맡아주실 분이 있다면 좋겠습니다… :slight_smile: (또한, 제가 놓치고 있는 더 나은 방법이 있다면 더 많은 시간을 허비하기 전에 알려주시면 감사하겠습니다…)

(최적화된 plotly js가 4MB를 초과하므로, 작동하려면 “최대 첨부 파일 크기” 설정을 5m로 올려야 할 것 같습니다?)

정말 멋지네요, 잘 만들었습니다!

이것을 프로덕션 환경에서 실행할 준비가 되면, Customization > Theme component 카테고리에 게시해 주세요. mermaid 컴포넌트와 함께 이 내용을 보고 싶습니다. (참고로 비슷한 기능을 하는 graphviz 플러그인도 있습니다.)

또한, plotly에는 활발한 커뮤니티가 있어 이 소식에 관심을 가질 것입니다: