確率分布をさわれるShinyアプリ「確率分布Viewer」に新機能を追加しました!

私が運営中のShinyアプリ「確率分布いろいろ」ですが、 このたびアプリ名を「確率分布Viewer」に変更しました。

それに伴い、 新機能 として、

  • 日本語・英語切替

  • ブックマーク機能

を追加しました!
ぜひ遊んでみてください。

こちらからアクセス可能です!↓

確率分布Viewer - http://statdist.ksmzn.com デモ


それでは新機能をご紹介します。

新機能1: 日本語・英語切り替え機能

まず、「日本語・英語切り替え機能」 です。

より多くの方に使っていただけるように、英語対応しました。 もちろん、これまでの日本語表示も同様にお使いいただけます。

アプリを起動すると、最初は英語で表示します。 言語を切り替えるには、画面右上の「English」ボタンを押して、表示したい言語を選択します。

https://gist.githubusercontent.com/ksmzn/42cd12b4c21bbea8ac2e7871bec28aac/raw/258b2cac2b454e227f6ab3d99447383796e4c09d/pda_i18n.gif

試しに「Japanese」を選択にしてみると、日本語表示に切り替わりました。 もちろん、分布の形状は維持したままです。

現在対応しているのは日本語と英語の2つのみです。 他の言語に対応する予定は今の所ございませんが、 プルリクエスト いただけたら喜んで反映させていただきます。

この機能を作るにいたっては、shiny.i18n パッケージを使いました。 詳しく知りたいかたは、こちらの記事↓をご覧ください。

ksmzn.hatenablog.com

また、英語の文章や単語は、以前翻訳版アプリを作成していただいた @kaz_yosさんにご許可いただき、 こちらにも反映いたしました。 元の英語版はこちらから見ることができます。 @kaz_yosさん、ありがとうございました。

新機能2: ブックマーク機能

shinyの標準機能であるブックマーク機能を搭載しました。

ブックマーク機能とは、Shinyアプリの状態を保存・復元できる機能です。 この機能については後日ブログにまとめる予定なので、ここでは「確率分布Viewer」アプリでの使い方を記します。

例えば、ポアソン分布の画面を開き、適当にパラメータを変更します。 次に、右上の 「Bookmark」 ボタンを押すと、 分布の状態がURLのクエリパラメータとして保存されます!

https://gist.githubusercontent.com/ksmzn/42cd12b4c21bbea8ac2e7871bec28aac/raw/258b2cac2b454e227f6ab3d99447383796e4c09d/pda_bookmark_01.gif

このURLをコピーし、新しいタブやウィンドウのURL欄に入力して開いてみると、 保存した状態の分布のカタチがそのまま復元できます!

https://gist.githubusercontent.com/ksmzn/42cd12b4c21bbea8ac2e7871bec28aac/raw/258b2cac2b454e227f6ab3d99447383796e4c09d/pda_bookmark_02.gif

もちろん、他の人に共有することも可能です。 試しにこのURL ↓ にアクセスしてみてください。

http://statdist.ksmzn.com/?_inputs_&pois-lambda=2.5&selected_language=%22Japanese%22&pois-p_or_c=%22c%22&tabs=%22pois%22&pois-range=%5B0%2C14%5D

ポアソン分布の累積分布関数が表示されたと思います。

もちろん、日本語・英語を切り替えてもしっかり反映されます。 これで、分布の形状を同僚に伝えたいときに活用できますね! ブックマークボタンを魔改造してTweetボタンも付けましたので、是非Twitterにシェアしてみてください。

これから

このアプリを作ったのは3年以上も前なのですが、Shiny とその周辺技術はかなり進歩しており、 私が「こういうことできるかな?」と思ったことがほぼ実現できて驚きました。 (たくさん魔改造も入ってますが)

今回のBookmark機能もそうですし、前回記事でご紹介した「ShinyModule」機能も、 アプリのリファクタリングにかなり役立ちました。

機能が増えたせいか、アプリの起動がちょっと重くなったのが課題です。 プロファイリングなど頑張ります。 アドバイス等ありましたら是非お願いします。

これからもっと便利にするために、

  • 対応する確率分布の数を増やす(3次元とか良いですね)

  • 確率分布同士の関係性を見る機能を作る

ことを考えています。 趣味プロジェクトなのでゆっくりやりたいと思います。

アプリのソースコードは全てこちら↓から閲覧可能です。(レポジトリ名変更しました) 稚拙ですがご参考になれば幸いです。

github.com

皆様よろしくお願いします。

ほしいものリスト