1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

3Dの散布図を見るツールをplotly.jsで作ってみた

Last updated at Posted at 2022-09-10

はじめに

以前、こちらの記事(3Dの散布図をさくっと見るツールを作ってみた)で、three.jsを使って結構頑張って作ったのですが、Plotly(JavaScript版)というライブラリがあって、それを使うと簡単に作れちゃうという噂を聞き、試してみました。
すごく簡単です。(涙)
そしてきれい。(涙)

いいんだ。前のはThree.jsの勉強になったからいいんだ。

作ったもの

  • 初期データとしてサンプルのウサギの点群が入ってますが、ファイルを選択すればお手元のCSVを表示できます。
    • このウサギは、ポリゴン業界(?)で有名なStanfordのbunnyから拝借しました。
    • 向きがちょっとアレですが、元データのまま、あえて編集してません。
      image.png

デモサイト
https://threed-scatter-app.onrender.com/

ソース

特徴

  • ブラウザで動作します。ドラッグでぐりぐり動かせます。
  • 自分で用意したCSVのデータも描けます。
  • htmlと必要なJavaScriptをダウンロードすれば、ローカルでも動きます。
    • データの収集等はしていませんのでご安心を。
  • JavaScriptがわかる人なら、自分のサイトに組み込めます。
  • 以前のと同じです。
  • 上に出るメニューから、PNG保存や、回転・パンの片手操作ができます。
    • 水平の角度を調整したいときは、中心から少し外れた位置をつかんで、中心を囲むような円を描く操作をするといいです。(この手の3D操作のコツの1つ)

plotly.jsの使い方

  • グラフを描画するためには、この1文だけです。
  • x,y,zの値のとこはそれぞれ配列にする必要があるので、この前の処理で元のCSVの形式(x,y,zで1データ)から加工して、data_xdata_ydata_zを作っていますが。
/src/js/plotly_3d_scatter_main.js(10-40)
    Plotly.newPlot(
        'myGraph',
        [
            {
                x: data_x,
                y: data_y,
                z: data_z,
                mode: 'markers',
                marker: {
                    color: 'rgb(27,27,256)',
                    size: 3,
                    symbole: 'circle',
                    line: {
                        color: 'rgb(204,204,204)',
                        width: 1
                    },
                    opacity: 0.8
                },
                type: 'scatter3d'
            }
        ],
        {
            margin: {
                l: 0,
                r: 0,
                b: 0,
                t: 0
            }
        }
    );
  • なんて簡単・・・。プロパティもわかりやすい。

おわりに

plotlyは、ほかのグラフもたくさん描ける上に、JavaScript版以外にもPython版・R版などがあって、すごく良いです。グラフが必要になったらこれ使うと楽だなぁと思います。

あ、自分の作ってみたものの感想で言うと、青い〇のほかに、別の系列・色を追加したくなるなぁとは思いました。私自身が必要ではないので、今回は作りませんでしたが、JavaScript的には色を変えながら追加していくだけなので、簡単にできます。(ご要望があったらコメントください。)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?