【Shiny D3.js integration】Lesson01:Shinyからjavascriptにデータを渡す

Rの可視化プラットフォームであるShinyは非常に強力です。スライダや数値入力を使ってデータを再計算し、グラフを描画しなおしたりすることができ、インタラクティブな分析に有用です。一方で、Shinyで描画されるグラフ類はグラフそのものにはインタラクティブ性がありません。散布図の一部を拡大表示させたり、ツールチップを表示させたり、そういうことができるライブラリもありますが、どうしてもライブラリ依存になってしまいます。
Javascriptのデータ可視化機能も非常に強力です。様々な可視化ライブラリがありますが、やはりD3.jsが群を抜いて便利です。Javascriptはhtmlを直接操作することができ、描画したグラフそのものにインタラクティブ性をもたせる、というShinyが苦手としている部分が得意です。ところが、Javascriptは複雑な統計処理を行うのが苦手です。
ならば、お互いの苦手な部分を補い合って、複雑な統計処理部分をR,Shinyにやらせ、インタラクティブな可視化の部分をJavascript、主にD3.jsにやらせてみてはどうでしょうか?

というようなことを前々からやりたかったのですが、なかなかまとまった情報がなく、仕方なく自分で情報を集め、整理してみました。ひとつひとつ理解していかないとはまってしまうところが多々ありますので、少しずつ、進めていきたいと思います。

なお、この記事はShinyとJavascript、特にD3.js、jQueryあたりをある程度触ったことがある方を対象にしています。なるべく平易に書いていくつもりですが、はしょってしまう部分も出てくるかと思いますので、ご了承ください。

続きを読む

【Rで自然言語処理】自然言語処理から見る米国映画の変遷 その弐

wanko-sato.hatenablog.com

前回、米国映画のあらすじを用い、トピックモデルによって分析する、という実験を行いました。今回はそれに続いて、センチメント分析を行い、トピックモデルの結果との結合を試みました。

続きを読む

【Rで自然言語処理】自然言語処理から見る米国映画の変遷 その壱

GWにたっぷり映画を見ました。映画ってその時代の空気を映し出しているよなぁ、と前々からなんとなく感じていたのですが、はっきりこれ、というデータがなくてむずがゆい感じがしていました。ならばいっそ、自分の手で分析してやろうじゃないか、というのが今回のモチベーションです。

※ものすごく長くなりそうなので二つに分割します。

続きを読む

【AWSでShiny】AMIを使ってAWS上に手っ取り早くShiny環境を作る。

AWS始めました。

種々やりたいことはあります。ありますが、取り急ぎ、Shinyで作ったアプリを社内向けに公開したい、という目的がございまして。ぶっちゃけ、Shiny serverを自前でインストールすれば済む話っちゃ話なのです。

www.randpy.tokyo

が、とりあえず的にShiny環境を作るのに、パブリックなAMIを使っちゃえば深く考えなくていいんじゃね?という発想でやってみました。非常に簡単なので、ほんとに手っ取り早くやるにはこれで十分かと。

続きを読む

【電子工作】ボタン電池式小型照明(キラキラエッグ)改造のための回路を設計する(実験編)

wanko-sato.hatenablog.com

前回の続きです。
ひとまずダミー電池を使ってボタン電池式の小型照明(100均で売っている「キラキラエッグ」)を単三電池式にすることが可能であることを確認しました。
今回は実装にあたってその回路を検討するのに加え

  • 電池だけでなくコンセントからも電源をとれるようにすること
  • 可変抵抗器を使って明るさを調節できる機能の追加

の2点を検討しました。
今回は実装の前の設計段階の話ですので、実装にしか興味のない方は飛ばしていただいて構いません。

続きを読む

【電子工作】ボタン電池式の照明を単三乾電池式に改造する(実験・試作編)

2018年のやりたいことの中にarduinoを使った電子工作があります。そういう話題をしようかと思ったのですが、今回は全く違う話です。
表題の通り、「ボタン電池式の照明を単三乾電池式に改造する」です。そのまんまです。はたしてこの話題を「電子工作」というくくりにいれていいものかどうかなんとも言えないところですが、電気使ってるし、工作してるし、テスタとか配線とか抵抗とか使ってるからそれっぽいし、電子工作のカテゴリに入れてしまいます。

続きを読む

【Javascript】オープンデータ遊びのための下準備。

昨年はR、Shiny、自然言語処理ニューラルネットワーク辺りを一生懸命やっていました。
2018年はどうしようかな、と考えていたところ、諸事情によりデータの可視化周りをあれこれする必要が出てきました。従来通りShinyでやっても良いのですが、せっかくだから新しいことにチャレンジしたい。ShinyだとどうしてもRが裏で動くことが前提だから、広く使ってもらうにはちょっと不便だな、という不満がなんとなくあって、だったらいっそのことJavascriptをやってみよう、と思い立ったわけです。
また、昨年末、諸事情あってIoTに興味をもち、arduinoをnode.jsから動かす"Johnny-five"なるライブラリがあることを知り、ますますJavascriptに興味をもったのでした。
2018年の前半はJavascriptによるデータビジュアライゼーション(たぶん主にD3.js)を中心に勉強しつつ、後半はnode.jsをつかったarduinoの操作およびセンサデータの取得と可視化をやってみようと思っています。加えて、まだどちらか決めかねているのですが、Amazon Web ServiceなりGoogle Cloud Platformなりのクラウドサービスを使ってあれこれ遊んでみたいとも思っています。
自然言語処理でやりたいことがあるといえばあるのですが、そのためのテストデータがなかなか集まらなくていったん休止状態です。

続きを読む