医学生がRStudioのggplot2でアニメーションを作ってみた

ggplot2でアニメーション

友人からggplot2でのアニメーションを作成を教わったので備忘録を兼ねて記事にします。

完成したアニメーション

ggplot2-animation

Rに詳しい友人がいなければ身につけられなかったスキルなので、プログラミングができる友人を見つけることをオススメします()

事前準備で必要なこと

STEP.1
tidyverseをインストールする
ggplot2なども入っているパッケージみたいです。
最近の流行りみたいなのでインストールしました。
ただし、注意としては死ぬほどインストールに時間がかかります。
STEP.2
Httrがインストールできず途中で止まる
インストール途中でHttrがインストールできず途中で止まりました。
conda経由で入れたせいなのかも知れません()
Rをインストールした際に”dev”のファイルかなにかを作っていなかったのが原因みたいです。httrだけ個別インストールしたらtidyverseのインストールに成功します。
スタックオーバーフローとかに書いてあるのでみてください

参考 Probalems installing the devtools packagesstackoverflow
STEP.3
devtoolをインストールする
 devtoolをインストールする
パッケージが作れるやつみたいです。
github上にあるパッケージをインストールする際に必要みたいです
githubにのっかているやつは”devtool::”を使ってパッケージインストールするみたいです。
普段よくやっている”install.packages”はRのCRANにのっているものだけできるっぽい。
github上のものは”install.packages(“githubinstall”)でもいけるみたいですけど、今回は無理でしたので、devtool::を使用しました。
STEP.4
devtoolを用いて「devtools::install_github("dgrtwo/gganimate")」を打ち込む

今回のアニメーションに必要なのが、この”dgrtwo/gganimate”みたいです

次に実際のRstudioでやったことをはっつけていきます。

RStudioでアニメーションを作成する

今回使用したのは、gapminderに入っているデータセットです。

rstudio

ってやるとheadで表示されたのがこちら。

rstudio2

年代ごとの情報が欲しいのでyearを引数に取る関数を作成。

rstudio3

ちなみに「::」はlibrary()を用いなくてもそのまま直接使えるようになります。

「%>%」はLinuxコマンドで言うところのpipeです「|」

RStudioだと「Ctrl+Shift+M」で「%>%」が出せます。

filterは行においてyearだけとってくるようにしてます。

rstudioでtidyverse

次に、distinctでyearの列において固有の値だけを取ってきます。

pull()ではとってきた値をvectorにします。

c(year, year, year,・・・)ってみたいに変形しているんですね。

map()において「.」はpullでvectorにした固有のyearのことです。

rstudio4

tweerは補完に使用するものみたいです。

データとデータを滑らかにつなげてくれる存在みたいです。

ease=”cubib-in-out”は、今回の場合だと「動いて止まって動く」パターンの指定の意味です。

他の形式はhelpでみればいくつかしていできるみたいです。

rstudio5

日本だけのデータをとってきて

rstudio6

実際アニメーションを作ってみる。

rstudioのアニメーション

ここで、「frame = .frame」がポイントで、これでアニメショーンが滑らかになるようです。

「frame = yr」にしても良いですが、これだとtweerでせっかく滑らか仕上げにしたのにカクカクになります。

あと、この場合「frame = .frame」にするとtitleが自動的に「.frame」になるためにわけが分からなくります。

そのため「title_frame=FALSE」で消します(※本人談)

「interval = .1」はアニメーションが0.1secごとに動くという意味です。

オンライン授業でRやPythonの勉強がしたい方はUdemyかTechAcademyがオススメ

Udemyというオンライン授業サイトには、RやPythonが勉強できるオンライン授業がたくさんあります。

書籍でプログラミングの勉強は初学者には大変ですので、映像授業でまず始めてみるのが良いと思います。

 

自分は、UdemyでRとPythonの授業を受けています。

Udemyのような単純なオンライン学習サイトでは勉強が継続できない方にはTechAcademyなどがあります。

テックアカデミーの1番の特徴は「パーソナルメンター制度」

本当にPCやIT系に疎い方であるなら、コチラの方が良いのかもしれません。

TechAcademy

継続できるように個別に目標設定してくれたり、学習の進捗に合わせた宿題があるみたいです。

 

これからRStudioでアニメーションを作ってみる際に、ぜひ参考にしてみてください。
終わり。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください