Share
Embed
いろんな可視化ツールあるけどggplotて何がいいの?- 複数ツールで比較してみた!-
Japan.R2023(2023/12/2実施)のLT資料
https://japanr.connpass.com/event/302622/
※SappoRo.R#11(2024/2/17)でも会場限定の対話型セッションで発表
https://connpass.com/event/307297/
wakama1994
December 02, 2023
Transcript
39 slides
-
©primeNumber Inc. 2 若松 拓夢 WHO AM I? 株式会社 primeNumber
ソリューション本部 データアナリスト 文系学部で計量経済学に出会い、大学院で理工系に転部 新卒では民間気象会社で、データ分析とIT開発に従事 2023年10月primeNumberにJoin 前職ではPythonとAWSを使ってデータ分析 現在はSQLを元にBIツールで可視化 Rとは3年ほど距離取ってます 笑 1 2 @wakama1994 -
会社概要 会社名 代表 創業 社員数 Office COMPANY 株式会社primeNumber 代表取締役CEO 田邊
雄樹 2015年11月 75名 東京都品川区上大崎3丁目1番1号 JR東急目黒ビル5F -
©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 弊社ソリューションのサービス提供範囲 発表内容と関連 -
©primeNumber Inc. 11 ライブラリパッケージ VS BIツールがない • 比較表を探しても、基本BIツール同士 orパッケージ同士 •
作図にかかる作業コストの議論がなかった 11 -
©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の接続がない限りデータは取り込めない -
©primeNumber Inc. 16 ② 同じ図を書くのにどれくらいかかる? 作成する図 • サンプルスーパーストアを参考にして作られたものを参考 ① 月別売上を 前年との比較
※棒グラフ 折れ線グラフで表現 ② 都道府県ごとの カテゴリー別売上 ③ サブカテゴリー ごとの売上 ※上記URLの図を一部加工 関西地方における -
©primeNumber Inc. 17 • 今回の発表ですが、完全な回答(ベスプラ)ではありません ◦ ネットの情報を拾いつつ、若松個人のスキルで構築したものです • ネットの情報を拾っても、実装できないケースもありました ◦
特にggplotの場合はほぼ初めて触ったので、結構怪しい部分多いです... • 夏休みの自由研究的な感覚で発表聞いて頂ければ... 結果の比較の前に... -
©primeNumber Inc. 18 Matplotlibの作図 • ①は及第点 • ②グラフが意図とズレたグラフに...... • ③はデフォルトで円グラフに項目が書かれている
各々のグラフを作るのに細かい設定のコードを理解する必要あり -
©primeNumber Inc. 21 ggplotの作図 各々のグラフは作りやすいが重ねるのに向いてない可能性大 • ①は凡例が出せなかった... • ②は意図通り •
③も意図通りだが、 ①と重なってる&余計な軸が入っている -
©primeNumber Inc. 23 ggplotのコード • 円グラフの図に関して、 geom_bar()で 描くのでどうしても軸が 残ってる..... •
cowplot, patchwork, egg, ggpub,で複数グラフを重 ねるケースが多いが、 どれもイマイチ... -
©primeNumber Inc. 30 簡易的な作図については問題ないが、詳細な設定の場合学習コストがかかる • matplotlibの場合 ◦ 図を組み合わせるのは、add_subplot関数で対応可能 ◦ 一方細かな軸の設定や積み上げグラフになってくると情報整理が課題
• ggplotについて ◦ SQLでテーブルを切り出すのに近いので、1つ1つの作図は手軽に対応 ◦ 高度なグラフや軸の設定も比較的書きやすい ◦ 一方で、1枚の図にするのはドキュメントも少なく対応が大変 ライブラリパッケージのまとめ -
©primeNumber Inc. 31 複雑な図示もある程度は可能だが、機能上どう頑張ってもできないケースも存在 • tableauの場合 ◦ 各図を作成し、ダッシュボードに纏めるので1枚の図示はやりやすい ◦ フィルター制限についても最もやりやすかった
◦ 一方で前年の比較などの複雑なケースは、技術的なハンドリングが必要 • Looker studioの場合 ◦ 作りたいケースに最も近かったので、カバー範囲が広い ◦ フィルター設定や一部表題の付け方に機能的な制限がある BIツール側のまとめ -
©primeNumber Inc. 32 github上にソースコード公開してます! • matplotlib, ggplotのソースコード • tableau desktopで作成したプロジェクトファイル
• Looker studioで作った作図のPDF https://github.com/wakama1994/japanr2023-wakama1994 今回使用したコードの公開 -
©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】円グラフを作成する方法【ラベル、 フォントサイズ変更方法など】 -
©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) -
37 技術スタック • trocco® に加え、データ関連の様々な技術/サービスを組み合わせて顧客支 援を行っています • 主な利用ツール a. DWH:
BigQuery, Snowflake, Redshift 等 b. BI: Tableau, Looker, Looker Studio 等 • インフラ a. AWS, GCP 等 • その他 a. Slack, Teams, Backlog, GitHub 等 (案件により異なります) -
©primeNumber Inc. 38 こんなメンバーと働けます! 取締役執行役員COO 1名 ソリューションアーキテクト 3名 データエンジニア 1名
データアナリスト 4名 メンバーの趣向性 ❏ クライアントワークの経験が豊富な人 ❏ データコンペに出てる人 ❏ QiitaやZennの記事を書きたい人 ❏ tableau大好きな人 etc.. ソリューション本部やその他エンジニア職種の募集はこちら! https://note.com/megono/n/nd2c2978c37e1