Upgrade to Pro — share decks privately, control downloads, hide ads and more …

いろんな可視化ツールあるけどggplotて何がいいの?- 複数ツールで比較してみた!-

wakama1994
December 02, 2023

いろんな可視化ツールあるけどggplotて何がいいの?- 複数ツールで比較してみた!-

Japan.R2023(2023/12/2実施)の発表資料
https://japanr.connpass.com/event/302622/

※SappoRo.R#11(2024/2/17)でも会場限定の対話型セッションで発表
https://connpass.com/event/307297/

wakama1994

December 02, 2023
Tweet

More Decks by wakama1994

Other Decks in Technology

Transcript

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  8. ©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

    弊社ソリューションのサービス提供範囲
    発表内容と関連

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  14. ©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の接続がない限りデータは取り込めない

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  26. ©primeNumber Inc.
    26
    tableauの作図

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  33. ©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】円グラフを作成する方法【ラベル、
    フォントサイズ変更方法など】

    View full-size slide

  34. ©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)

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide