Slide 1

Slide 1 text

いろんな可視化ツールあるけど ggplotて何がいいの? 複数ツールで比較してみた! @wakama1994 Takumu Wakamatsu Japan.R 2023 

Slide 2

Slide 2 text

©primeNumber Inc. 2 若松 拓夢 WHO AM I? 株式会社 primeNumber ソリューション本部 データアナリスト 文系学部で計量経済学に出会い、大学院で理工系に転部 新卒では民間気象会社で、データ分析とIT開発に従事 2023年10月primeNumberにJoin 前職ではPythonとAWSを使ってデータ分析 現在はSQLを元にBIツールで可視化 Rとは3年ほど距離取ってます 笑 1
 2 @wakama1994

Slide 3

Slide 3 text

AGENDA primeNumberについて 可視化ツールの全体感 各ツールの比較 まとめ 最後に 01. 02. 03. 04. 05.

Slide 4

Slide 4 text

©primeNumber Inc. primeNumberについて 企業概要 / ソリューション本部としての取組 ABOUT US 4

Slide 5

Slide 5 text

会社概要 会社名 代表 創業 社員数 Office COMPANY 株式会社primeNumber 代表取締役CEO 田邊 雄樹 2015年11月 75名 東京都品川区上大崎3丁目1番1号 JR東急目黒ビル5F

Slide 6

Slide 6 text

データ活用「環境」を整えるための サービスを提供 Solution Service データエンジニアリング領域のフルサポート データ統合自動化SaaS

Slide 7

Slide 7 text

©primeNumber Inc. 7 7 データ分析基盤の総合支援SaaS デモ動画URL:https://trocco.io/lp/index.html

Slide 8

Slide 8 text

©primeNumber Inc. 8 Solution Serviceのカバー範囲 8 コンサルティングからデータ基盤構築・運用、活用領域(BI/機械学習)の構築まで、 データエンジニアリングカンパニーとして、データ基盤の構築からデータ活用を一気通貫でサポートしています。 データ分析・機械学習 
 BI導入
 統合・蓄積・ビジネスロジック実装 
 前処理構築 
 データ整備
 後処理構築 
 データ可視化 
 DWH構築
 転送・加工マネジメント 
 データレイク構築 
 データバリデーション 
 業務の見える化 
 コンサルテーション 
 • ダッシュボード構築 
 • メンテナンス etc. 
 • データの学習 
 • データ蓄積方針 
 • データの品質 
 • 業務の棚卸し 
 • 業務整理
 BigQuery
 Snowflake
 Redshift
 Tableau
 Looker Studio 
 Looker
 • バッチデータ転送 
 • 転送方法・頻度 
 • マート作成粒度 
 • ガバナンス etc. 
 機械学習基盤選定 
 パイプライン構築 
 学 習
 推 論
 SaaS/ DB / その他サービス 
 • 各種コネクタの追加 
 trocco®による 
 シームレスなデータ連携 
 • リアルタイム処理 
 pN-Ops
 pN-Integration 
 弊社ソリューションのサービス提供範囲 発表内容と関連

Slide 9

Slide 9 text

©primeNumber Inc. 可視化ツールの全体像 9

Slide 10

Slide 10 text

©primeNumber Inc. 10 何もわからん 笑 数が多すぎてどれがいいのかわからん🤷

Slide 11

Slide 11 text

©primeNumber Inc. 11 ライブラリパッケージ VS BIツールがない ● 比較表を探しても、基本BIツール同士 orパッケージ同士 ● 作図にかかる作業コストの議論がなかった 11

Slide 12

Slide 12 text

©primeNumber Inc. 12 今日の発表 ①いろんなツールの比較表を作って ②同じ図を書くのにどの程度コストがかかるか検証!

Slide 13

Slide 13 text

©primeNumber Inc. 13 今回取り上げるツール ライブラリ パッケージ BIツール

Slide 14

Slide 14 text

©primeNumber Inc. 14 ①各ツールの比較表 実装環境 ソフトウェア/web GCP python環境 R環境 プログラミング なくてもOK なくてもOK 必須 必須 コスト ※1無料/有償 ※3 無料/有償 無料 無料 データソース csv PDF ※2 外部製品 csv GCP製品 ※3 外部製品 csv /API csv /API 共有方法 ※2 プロジェクトファイル Googleアカウント pythonコード Rコード ※1 tableau Desktopは有償, tablepublicは無償だがweb公開される ※2 tableau Desktopの場合に限る ※3 ただし、有償のGCPの接続がない限りデータは取り込めない

Slide 15

Slide 15 text

©primeNumber Inc. 15 ② 同じ図を書くのにどれくらいかかる? 作図に使用するデータ ● Tableauのsampleデータサンプルスーパーストアを使用

Slide 16

Slide 16 text

©primeNumber Inc. 16 ② 同じ図を書くのにどれくらいかかる? 作成する図 ● サンプルスーパーストアを参考にして作られたものを参考 ① 月別売上を 前年との比較 ※棒グラフ 折れ線グラフで表現 ② 都道府県ごとの カテゴリー別売上 ③ サブカテゴリー ごとの売上 ※上記URLの図を一部加工 関西地方における

Slide 17

Slide 17 text

©primeNumber Inc. 17 ● 今回の発表ですが、完全な回答(ベスプラ)ではありません ○ ネットの情報を拾いつつ、若松個人のスキルで構築したものです ● ネットの情報を拾っても、実装できないケースもありました ○ 特にggplotの場合はほぼ初めて触ったので、結構怪しい部分多いです... ● 夏休みの自由研究的な感覚で発表聞いて頂ければ... 結果の比較の前に...

Slide 18

Slide 18 text

©primeNumber Inc. 18 Matplotlibの作図 ● ①は及第点 ● ②グラフが意図とズレたグラフに...... ● ③はデフォルトで円グラフに項目が書かれている 各々のグラフを作るのに細かい設定のコードを理解する必要あり

Slide 19

Slide 19 text

©primeNumber Inc. 19 Matplotlibの作図 ←図の位置を決めて、折れ線と棒グラフを組み合わせる ● 図示する目的に対して、毎回フィル ターかけていく必要がある ● 細かい軸の設定は探せば出てくる感じ

Slide 20

Slide 20 text

©primeNumber Inc. 20 Matplotlibの作図の結果 ● 積み上げ棒グラフは matplotlibの仕様デ フォルトではなく、複 数個を繋げる形に...

Slide 21

Slide 21 text

©primeNumber Inc. 21 ggplotの作図 各々のグラフは作りやすいが重ねるのに向いてない可能性大 ● ①は凡例が出せなかった... ● ②は意図通り ● ③も意図通りだが、 ①と重なってる&余計な軸が入っている

Slide 22

Slide 22 text

©primeNumber Inc. 22 ggplotのコード ● SQLのように、目的ごとにテーブル作 ると描きやすい ● 細かい凡例設定はweb記事が少ない....

Slide 23

Slide 23 text

©primeNumber Inc. 23 ggplotのコード ● 円グラフの図に関して、 geom_bar()で 描くのでどうしても軸が 残ってる..... ● cowplot, patchwork, egg, ggpub,で複数グラフを重 ねるケースが多いが、 どれもイマイチ...

Slide 24

Slide 24 text

©primeNumber Inc. 24 tableauでの作図 ● 全体感はかなり綺麗に描 けている ● ①の折れ線グラフと 棒グラフの作図に失敗....

Slide 25

Slide 25 text

©primeNumber Inc. 25 tableauでの作図 ● 折れ線と棒グラフにでき ないか試行錯誤したが.... ⇩

Slide 26

Slide 26 text

©primeNumber Inc. 26 tableauの作図

Slide 27

Slide 27 text

©primeNumber Inc. 27 Lookerstudioでの作図 ● かなり類似した ものが完成 ● 図のタイトルで 一部加工必要

Slide 28

Slide 28 text

©primeNumber Inc. 28 Lookerstudioでの作図 ● 日付データから、年、年月、年 を各ディメンションに組み込む    

Slide 29

Slide 29 text

©primeNumber Inc. 29 Lookerstudioでの作図 ● リファレンス行で タイトルがかける ● 円グラフは リファレンス 行はなし

Slide 30

Slide 30 text

©primeNumber Inc. 30 簡易的な作図については問題ないが、詳細な設定の場合学習コストがかかる ● matplotlibの場合 ○ 図を組み合わせるのは、add_subplot関数で対応可能 ○ 一方細かな軸の設定や積み上げグラフになってくると情報整理が課題 ● ggplotについて ○ SQLでテーブルを切り出すのに近いので、1つ1つの作図は手軽に対応 ○ 高度なグラフや軸の設定も比較的書きやすい ○ 一方で、1枚の図にするのはドキュメントも少なく対応が大変 ライブラリパッケージのまとめ

Slide 31

Slide 31 text

©primeNumber Inc. 31 複雑な図示もある程度は可能だが、機能上どう頑張ってもできないケースも存在 ● tableauの場合 ○ 各図を作成し、ダッシュボードに纏めるので1枚の図示はやりやすい ○ フィルター制限についても最もやりやすかった ○ 一方で前年の比較などの複雑なケースは、技術的なハンドリングが必要 ● Looker studioの場合 ○ 作りたいケースに最も近かったので、カバー範囲が広い ○ フィルター設定や一部表題の付け方に機能的な制限がある BIツール側のまとめ

Slide 32

Slide 32 text

©primeNumber Inc. 32 github上にソースコード公開してます! ● matplotlib, ggplotのソースコード ● tableau desktopで作成したプロジェクトファイル ● Looker studioで作った作図のPDF https://github.com/wakama1994/japanr2023-wakama1994 今回使用したコードの公開

Slide 33

Slide 33 text

©primeNumber Inc. 33 参考資料 matplotlib https://www.yutaka-note.com/entry/matplotlib_bar Matplotlib 棒グラフの描き方|複数系列・積み上げ棒グラフも全て OK https://datumstudio.jp/blog/matplotlib-2%E8%BB%B8%E3%82%B0%E3%83%A9%E3%83%95%E3%81%AE%E6%9B%B8%E3 %81%8D%E6%96%B9/ Matplotlib-2軸グラフの書き方 https://smart-hint.com/python/datetime-ymd/ 【Python】日付型データから年・月・日を取り出す方法|datetime https://hesma2.hatenablog.com/entry/2021/01/22/003526 【Python】pandas.Grouperで時系列データを楽々groupby! https://qiita.com/trami/items/bd54f22ee4449421f2bc 【matplotlib基礎】複数のグラフを並べて表示する https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.legend.html matplotlib.axes.Axes.legend https://python-academia.com/matplotlib-piechart/#google_vignette 【matplotlib】円グラフを作成する方法【ラベル、 フォントサイズ変更方法など】

Slide 34

Slide 34 text

©primeNumber Inc. 34 参考資料 ggplot https://speakerdeck.com/kilometer/tokyor109 第109回TokyoR データ可視化の基礎 https://stats.biopapyrus.jp/r/ggplot/geom_bar.html 生物統計学 geom_bar https://qiita.com/shush/items/2c074e0bc057fbe41dd0 python pandas と R tidyverseの比較 https://anatomy.med.gunma-u.ac.jp/protocols/?p=1310 GGPLOT2のグラフに日本語を入れる https://www.statology.org/r-group-by-month/ How to Group Data by Month in R (With Example) https://epirhandbook.com/jp/dates.html 疫学のための R ハンドブック 9日付型データ https://rpubs.com/imuyaoti/barplot ggplot2で 集計されていないデータフレームから 離散変数の頻度棒グラフを描く(1変数 &2変数) https://keachmurakami.github.io/page/2018/07/21/ggplot2%E3%81%AE%E5%9B%B3%E3%82%92%E3%83%91%E3% 83%8D%E3%83%AB%E7%8A%B6%E3%81%AB%E4%B8%A6%E3%81%B9%E3%82%8B-cowplot-patchwork-egg-ggp ubr/ ggplot2の図をパネル状に並べる (cowplot, patchwork, egg, ggpubr)

Slide 35

Slide 35 text

©primeNumber Inc. 35 参考資料 Looker studio Googleデータポータル(現 LookerStudio)で「年度ごとに同月を比較するグラフ」を書く https://qiita.com/sakaimo/items/286ac1f8513d3a4a92ac

Slide 36

Slide 36 text

©primeNumber Inc. 最後に ソリューション本部の働き方 ABOUT US 36

Slide 37

Slide 37 text

37 技術スタック ● trocco® に加え、データ関連の様々な技術/サービスを組み合わせて顧客支 援を行っています ● 主な利用ツール a. DWH: BigQuery, Snowflake, Redshift 等 b. BI: Tableau, Looker, Looker Studio 等 ● インフラ a. AWS, GCP 等 ● その他 a. Slack, Teams, Backlog, GitHub 等 (案件により異なります)

Slide 38

Slide 38 text

©primeNumber Inc. 38 こんなメンバーと働けます! 取締役執行役員COO 1名 ソリューションアーキテクト 3名 データエンジニア 1名 データアナリスト 4名 メンバーの趣向性 ❏ クライアントワークの経験が豊富な人 ❏ データコンペに出てる人 ❏ QiitaやZennの記事を書きたい人 ❏ tableau大好きな人 etc.. ソリューション本部やその他エンジニア職種の募集はこちら! https://note.com/megono/n/nd2c2978c37e1

Slide 39

Slide 39 text

あらゆるデータを、 ビジネスの力に変える。 primeNumberは、データテクノロジーカンパニー。 あらゆるデータが爆発的に増えていく時代に、 誰もがすばやく、簡単にデータを使える環境を構築し、 データ活⽀までのプロセスを最適化。 ⽀度なテクノロジーと独⽀のアイデアで、 世界中のビジネスを⽀援します。 V I S I O N