SlideShare a Scribd company logo
1 of 67
今日から始めるC3.js
WACODE 4th
@nw_seko
@wn_seko
• Wataru Nakaseko
• ピコもん株式会社 WebApp Engineer
• Javascriptでフロントエンド、バックエンド、バッチ、 業務ツ
ールの開発などをしてる
• 機械学習やセマンテックの研究のためにPythonを触り始めた
• 休日はボードゲームとか音ゲーとか、最近はX-WINGのゲーム
にハマってる
ピコもん株式会社
ピコもん株式会社
Webサイトの案内人として、ピコもん導入サイ
ト上でキャラクターを動かし、訪問ユーザとコ
ミュニケーションを取りながらユーザが求めて
いる情報へと誘導するサービスを提供している
http://www.picomon.jp
ピコもん株式会社
トークスクリプト
アクセスログ
バッチ処理
DB
Big Query
解析データ
ピコもん株式会社
解析ページ全般でC3.jsを導入している
導入経緯
すべてはD3から始まった
• https://d3js.org/
• データドリブンなビジュアライゼーションラ
イブラリ
こんな感じのかっこいい
折れ線グラフが作れる!!
D3.jsを使用して起きた問題点
• 単純な折れ線グラフや棒グラフの作成にしては記述
量が多い
• そもそも折れ線と棒グラフくらいしか使わないのに
D3.jsはオーバースペック
• コピペが横行してバグ発生の原因になった
• コードの見通しを良くするためにWrapperが欲しい
D3.jsの代替品を探す
• 学習や実装にコストがかからないライブラリ
• 既存のグラフと共存させるためにD3のグラフ
とデザインやUIがかけ離れないこと
D3.jsの代替品を探す
• 学習や実装にコストがかからないライブラリ
• 既存のグラフと共存させるためにD3のグラフ
とデザインやUIがかけ離れないこと
C3.jsというものがあるらしい…
What’s C3.js
What’s C3.js
http://c3js.org
What’s C3.js
• チャート作成に特化したビジュアライゼーションラ
イブラリ
• D3.jsをベースにチャート描画に必要なコードをラッ
プしている
• 依存モジュールはD3.jsとjQueryのみ
• APIを通じてグラフの書き換えや操作ができる
What’s C3.js
依存モジュール
D3.js, jQuery
動作環境
HTML5が動くデバイス(IEは9以上)
Android chromeやiOS safariでも動作する
Feature
Feature
• 学習コストが低い
• インタラクティブなUI
• 動かせるサンプル
学習コストが低い
学習コストが低い
学習コストが低い
学習コストが低い
学習コストが低い
学習コストが低い
学習コストが低い
• 10行程度でグラフが書ける
• 必要なプロパティをConfigとして扱える
インタラクティブなUI
インタラクティブなUI
インタラクティブなUI
インタラクティブなUI
インタラクティブなUI
インタラクティブなUI
• 設定なしで凡例・ツールチップを出せる
• 凡例はマウスオーバーでグラフの強調、クリッ
クでグラフの表示切り替えができる
• グラフをマウスオーバーするとツールチップが
でてくる
• これらの機能はオン・オフや拡張が可能
動かせるサンプル
動かせるサンプル
動かせるサンプル
動かせるサンプル
Graphes
Graphes
• Line Chart
• Bar Chart
• Pie Chart
• Scatter Prot
Data
Data
• X軸には数値、日付、カテゴリを使用できる
• ヘッダ付きCSV, JSONを読み込み可能
• URLを指定するとリモートのCSVまたはJSON
ファイルを取得してグラフ描画する
• ローカルのファイルの読み込みには工夫がい
る
ローカルファイルの読み込み方
CORSの関係上Ajaxではfile://で始まるURLを読み込む
ことができない
• DropboxやAmazon S3などのクラウドサービスにア
ップロードする
• サーバーをたてる
• HTML5のFile APIを利用する
Examples
Line Chart
Spline Chart
Step Chart
Area Chart
Area Chart (Spline)
Area Chart (step)
Bar Chart
Stacked Bar Chart
Bar Chart (rotated)
Combination Chart
Pie Chart
Donut Chart
Gauge Chart
Gauge Chart
Gauge Chart
Gauge Chart
Scatter Plot
雑感・まとめ
C3を導入して良かった点
• 実装時間が大幅に短縮された
• ソースコードの保守性が上がった
• グラフ作成タスクへの抵抗感がなくなった
• グラフごとの個別実装がなくなりUIが統一さ
れた
C3で困った点
• やりたいことがAPIで提供されていないと辛い
• ドキュメントから機能を逆引きし辛い
• ドキュメントに機能についての説明が無い
まとめ
• C3.jsを使用すると学習コストをかけずにグラ
フの作成ができる
• 作成したグラフをインタラクティブに触るこ
とができる
たまには息抜きにJavascript
でもいかがでしょうか?
- FIN -

More Related Content

Similar to 今日から始めるC3.js

データセンター事業と関連業界のご紹介
データセンター事業と関連業界のご紹介データセンター事業と関連業界のご紹介
データセンター事業と関連業界のご紹介SAKURA Internet Inc.
 
リモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみたリモートデバッグツール Weinerをつかってみた
リモートデバッグツール WeinerをつかってみたMasakazu Muraoka
 
Django で始める PyCharm 入門
Django で始める PyCharm 入門Django で始める PyCharm 入門
Django で始める PyCharm 入門kashew_nuts
 
Inside CyberAgent's Game Development
Inside CyberAgent's Game DevelopmentInside CyberAgent's Game Development
Inside CyberAgent's Game DevelopmentSuguru Shirai
 
Beatroboでのハードウェアプロトタイピング
BeatroboでのハードウェアプロトタイピングBeatroboでのハードウェアプロトタイピング
BeatroboでのハードウェアプロトタイピングHideyuki TAKEI
 
3Dプリント×Python ~コードからアプローチする3Dプリンティング~
3Dプリント×Python ~コードからアプローチする3Dプリンティング~3Dプリント×Python ~コードからアプローチする3Dプリンティング~
3Dプリント×Python ~コードからアプローチする3Dプリンティング~Takuro Wada
 
PWA+WebARをECサイトで使ってみたい
PWA+WebARをECサイトで使ってみたいPWA+WebARをECサイトで使ってみたい
PWA+WebARをECサイトで使ってみたいDaisuke Yamashita
 
世界を変えるクラウドサインの取り組み
世界を変えるクラウドサインの取り組み世界を変えるクラウドサインの取り組み
世界を変えるクラウドサインの取り組みYoshinori OHTA
 
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~法林浩之
 
Offloading BPF Implementation to FPGA-NIC したいねって話
Offloading BPF Implementation to FPGA-NIC したいねって話Offloading BPF Implementation to FPGA-NIC したいねって話
Offloading BPF Implementation to FPGA-NIC したいねって話slankdev
 
2205ACRi_jinguji.pdf
2205ACRi_jinguji.pdf2205ACRi_jinguji.pdf
2205ACRi_jinguji.pdf直久 住川
 
凄いWordPress2018 contents.nagoya
凄いWordPress2018  contents.nagoya凄いWordPress2018  contents.nagoya
凄いWordPress2018 contents.nagoyatakashi ono
 
Zabbix で Mastodon を監視する Sidekiq / Redis を中心に Mastodon 健康診断
Zabbix で Mastodon を監視する Sidekiq / Redis を中心に Mastodon 健康診断Zabbix で Mastodon を監視する Sidekiq / Redis を中心に Mastodon 健康診断
Zabbix で Mastodon を監視する Sidekiq / Redis を中心に Mastodon 健康診断さくらインターネット株式会社
 

Similar to 今日から始めるC3.js (20)

データセンター事業と関連業界のご紹介
データセンター事業と関連業界のご紹介データセンター事業と関連業界のご紹介
データセンター事業と関連業界のご紹介
 
What is tmcn for isit
What is tmcn for isitWhat is tmcn for isit
What is tmcn for isit
 
リモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみたリモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみた
 
Django で始める PyCharm 入門
Django で始める PyCharm 入門Django で始める PyCharm 入門
Django で始める PyCharm 入門
 
Pythonを始めよう
Pythonを始めようPythonを始めよう
Pythonを始めよう
 
Inside CyberAgent's Game Development
Inside CyberAgent's Game DevelopmentInside CyberAgent's Game Development
Inside CyberAgent's Game Development
 
Beatroboでのハードウェアプロトタイピング
BeatroboでのハードウェアプロトタイピングBeatroboでのハードウェアプロトタイピング
Beatroboでのハードウェアプロトタイピング
 
Sakura infini band-20180424
Sakura infini band-20180424Sakura infini band-20180424
Sakura infini band-20180424
 
3Dプリント×Python ~コードからアプローチする3Dプリンティング~
3Dプリント×Python ~コードからアプローチする3Dプリンティング~3Dプリント×Python ~コードからアプローチする3Dプリンティング~
3Dプリント×Python ~コードからアプローチする3Dプリンティング~
 
PWA+WebARをECサイトで使ってみたい
PWA+WebARをECサイトで使ってみたいPWA+WebARをECサイトで使ってみたい
PWA+WebARをECサイトで使ってみたい
 
My portfolio
My portfolioMy portfolio
My portfolio
 
世界を変えるクラウドサインの取り組み
世界を変えるクラウドサインの取り組み世界を変えるクラウドサインの取り組み
世界を変えるクラウドサインの取り組み
 
Cybozu lt2017
Cybozu lt2017Cybozu lt2017
Cybozu lt2017
 
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
 
さくらのクラウドの研究活用
さくらのクラウドの研究活用さくらのクラウドの研究活用
さくらのクラウドの研究活用
 
Security camp cpu
Security camp cpuSecurity camp cpu
Security camp cpu
 
Offloading BPF Implementation to FPGA-NIC したいねって話
Offloading BPF Implementation to FPGA-NIC したいねって話Offloading BPF Implementation to FPGA-NIC したいねって話
Offloading BPF Implementation to FPGA-NIC したいねって話
 
2205ACRi_jinguji.pdf
2205ACRi_jinguji.pdf2205ACRi_jinguji.pdf
2205ACRi_jinguji.pdf
 
凄いWordPress2018 contents.nagoya
凄いWordPress2018  contents.nagoya凄いWordPress2018  contents.nagoya
凄いWordPress2018 contents.nagoya
 
Zabbix で Mastodon を監視する Sidekiq / Redis を中心に Mastodon 健康診断
Zabbix で Mastodon を監視する Sidekiq / Redis を中心に Mastodon 健康診断Zabbix で Mastodon を監視する Sidekiq / Redis を中心に Mastodon 健康診断
Zabbix で Mastodon を監視する Sidekiq / Redis を中心に Mastodon 健康診断
 

Recently uploaded

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Recently uploaded (9)

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

今日から始めるC3.js