LoginSignup
9
8

More than 3 years have passed since last update.

データをダイナミックに可視化してクラウドから呼び出す【plotly, chart studio】

Posted at

Rやpythonでplotlyというパッケージがありまして、動的な可視化ができるので、その使い方の説明をしようかと。
ついでに作図したものをchart studioというクラウド上のリポジトリに保存してhtmlタグ化する方法も紹介します。

本記事の内容
・plotlyの使い方
・chart studioの使い方

世はまさに大可視化時代

今回はRで紹介します

まずplot

library(plotly)

fig <- plot_ly(data = iris, x = ~Sepal.Length, y = ~Petal.Length, type = 'scatter',
               mode = 'markers', symbol = ~Species, symbols = c('circle','x','o'),
               color = I('black'), marker = list(size = 10))

fig

001.gif

こんな感じで動的な可視化ができます。

動的な結果を保存したい場合はRstudioならExportボタンからwebページで保存を選択すると標準設定にしているブラウザでhtmlが立ち上がると思うので、ブラウザ側からwebページの保存を行ってください。

でもこれだとhtmlを共有しないと結果が確認できない。

そうだ、クラウドにしよう。

plotlyはchart studioと結びつけて自分のplotを保存したり公開したりできます。
早速使ってみましょう

chart studio 新規登録

image.png

↑ここでまず登録します。

image.png

登録が完了したら右上からsettingsを選んで、APIをcreateしましょう。
表示されたAPIをメモしたらRに戻って自分の名前とAPI keyを指定します。

Sys.setenv("plotly_username"="Ringa-hyj")
Sys.setenv("plotly_api_key"="api_key")

あとは上記のように図を作って変数に入れたらapi_create関数でchart studioにデータとスクリプトがアップロードしましょう。

options(browser = 'false')
api_create(fig, filename = "iris-data-plot")

chart studioのページでは先ほどの結果がアップロードされていると思います。
データは秘密にしておきたい場合は鍵マークをクリックして鍵ををかけておきましょう。

image.png

こうして作成した図は埋め込み用のhtmlタグを生成できます。
図の下の方にあるコメント欄の右上のembedから

image.png

htmlなどが生成できます。
試しにQiitaへコード指定もコメント指定もせず、そのまま張り付けると以下のようになります。

iris-data-plot

クリックすると描画先へ飛んでくれるだけですが・・・

Qiitaでもう少し工夫して魅せたいという方はこちらを

Plotlyを使った描画結果をQiita内にCodePen埋め込むことで確認する

おまけ

plotlyでもtableauでもD3.jsでも方法はなんでもいいのですが、見せ方一つでデータの伝わり方は変化するので可視化は工夫したいものです。
可視化で手を抜くと、時に間違った伝わり方をしたり、重要なポイントを自分自身が見落とす可能性もあります。

newplot.png

slider2017.gif

plotlyほんとスゲー
公式がいくつかサンプルの使い方を示してくれているので参考に。
graphing libraries

可視化は奥が深い。もっと色々使えそうなもの探さなくては。。

基本的な使い方は公式のドキュメントを参照ください
Getting Started with Chart Studio in R

9
8
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
9
8