SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
JavaScriptでできる
電力使用状況グラフ
2
http://profiles.wordpress.org/sysbird/
株式会社ベクター
企画・デザイン部
WordPress
プラグイン
テーマ配布
@sysbird
いままでに
食べたお菓子
2311種
共著
3
動画
Web API
画像
地図
認証
言語
料理
位置情報
アフィリエイト
天気
行政
写真
SNS Eコマース
交通
4
฀฀
JavaScript Web API
5
Google Maps API
https://developers.google.com/
maps/?hl=ja http://yasai.nerima-web.com/
6
Flickr Services
https://www.flickr.com/
services/api/
TinEye Labs
http://labs.tineye.com/
7
API
http://zip.cgis.biz
http://sumaity.com/mansion_shinchiku/
8
฀
1
2
3
JavaScript
本日の
目標!
9
WebAPI
http://developer.yahoo.co.jp/
webapi/shinsai/
Yahoo!
API
API
1
1
2
10
https://developers.google.com
/chart/?hl=ja
Google Charts
฀3
11
// 用電
usage = [['時', ' 用 (%)’],
[0, 0],
[1, 0],
[2, 0],
[3, 0],
[4, 0],
[5, 0],
・
・
・
[20, 0],
[21, 0],
[22, 0],
[23, 0],
];
Google Charts
24時間ぶん
空の配列
12
http://setsuden.yahooapis.jp/v1/Setsuden/electricPowerForecast?appid=(アプリケー
ションID) &date=20140426&output=json&callback=?
API
{"Area":"tokyo","Usage":{"$":"39850000","@unit":"kW"},"Capacity":{"$":"4619000
0","@unit":"kW"},"Date":"2014-04-26","Hour":“17"},
{"Area":"tokyo","Usage":{"$":"41420000","@unit":"kW"},"Capacity":{"$":"4619000
0","@unit":"kW"},"Date":"2014-04-26","Hour":“18"},
{"Area":"tokyo","Usage":{"$":"42070000","@unit":"kW"},"Capacity":{"$":"4619000
0","@unit":"kW"},"Date":"2014-04-26","Hour":“18"},
{"Area":"tokyo","Usage":{"$":"40930000","@unit":"kW"},"Capacity":{"$":"4619000
0","@unit":"kW"},"Date":"2014-04-26","Hour":“20"},
{"Area":"tokyo","Usage":{"$":"39320000","@unit":"kW"},"Capacity":{"$":"4619000
0","@unit":"kW"},"Date":"2014-04-26","Hour":“21"},
{"Area":"tokyo","Usage":{"$":"37610000","@unit":"kW"},"Capacity":{"$":"4619000
0","@unit":"kW"},"Date":"2014-04-26","Hour":“22"},
URL
電力使用量 最大供給量時刻
本日の予測
1
13
// リクエスト
$.getJSON(url,
callback = function( data, status ){
// レスポンス
$.each( data.ElectricPowerForecasts.Forecast, function( i, item ){
// 時刻
var hour = parseInt( item.Hour );
// 用 予
var ratio = ( item.Usage.$ / item.Capacity.$ ) * 100;
ratio = Math.round( ratio );
usage[ hour +1 ] = [ hour, ratio];
});
});
Ajax
配列に代入
14
http://setsuden.yahooapis.jp/v1/Setsuden/latestPowerUsage?appid=(アプリケーショ
ンID) &output=json&datetime=2014042609&callback=?
API
{"Area":"tokyo","Usage":{"@unit":"kW","$":38310000},"Capacity":{"@unit":"kW","
$":46190000},"Date":"2014-03-20","Hour":9}})
URL
本日9時
最大供給量 電力使用量
時刻
2
15
// リクエスト
$.getJSON( url,
callback = function( data, status ){
// レスポンス
var item = data.ElectricPowerUsage;
// 時刻
var hour = parseInt( item.Hour );
// 用 (実績)
var ratio = ( item.Usage.$ / item.Capacity.$ ) * 100;
ratio = Math.round( ratio );
usage[ hour +1 ] = [ hour, ratio];
});
Ajax
配列に代入
16
// 用電
usage = [['時', ' 用 (%)’],
[0, 67],
[1, 64],
[2, 63],
[3, 63],
・
・
・
[17, 81],
[18, 86],
[19, 86],
[20, 84],
[21, 81],
[22, 77],
[23, 73],
];
Google Charts
電力使用率(実績)
電力使用率(予測)
配列が
完成!
17
// グラフ表示
var data = google.visualization.arrayToDataTable( usage );
var options = {
title: ‘本日の電 用 ‘,
hAxis: { title: '時間(時)' }
};
var chart = new
google.visualization.ColumnChart( document.getElementById( 'chart_div' ) );
chart.draw( data, options );
配列を渡す
表示領域
3
18
19
$(function(){
// グラフ描画
google.setOnLoadCallback( drawChart );
});
<head>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">google.load("visualization", "1",
{packages:["corechart"]});</script>
</head>
<body>
<div id="chart_div" style="width: 1000px; height: 500px;"></div>
</body>
</html>
HTML
JavaScript
jQueryと
Google Charts
ライブラリ
表示領域
20
// グラフ描画
function drawChart() {
// Google Charts の (24時間ぶん)を用意
usage = [['時', ' 用 (%)', { role: "style" }],
[0, 0, 0],…[23, 0, 0]];
// 電気予報API
$.getJSON( [リクエストURL],
callback = function( data, status ){
$.each( data.ElectricPowerForecasts.Forecast, function( i, item ){
// 用 (予報)を
usage[ hour +1 ] = [ hour, ratio];
});
// 電 用 を (本日0時からの)
get_usage( ‘20140426’, 0 );
});
}
1
21
// 電 用 を
function get_usage(day, hour) {
if(0 == usage[hour +1][1]){
// 電 用 API
$.getJSON( [リクエストURL],
callback = function( data, status ){
var item = data.ElectricPowerUsage;
// 用 (実績)を
usage[ hour +1 ] = [ hour, ratio];
// 電 用 を (次の時間)
get_usage( day, hour +1 );
});
}
else{
// グラフ表示
}
}
配列が
埋まらない間は
再帰呼び出し
配列が埋まったら
グラフを表示
3
2
22
https://github.com/sysbird/setsuden

Contenu connexe

Similaire à JavaScriptでできる電力使用状況グラフ

WebIntentsにより拓かれる次のWeb
WebIntentsにより拓かれる次のWebWebIntentsにより拓かれる次のWeb
WebIntentsにより拓かれる次のWebKensaku Komatsu
 
20180616 業務システムをAppServiceで運用しよう #きたあず #jazug
20180616 業務システムをAppServiceで運用しよう #きたあず #jazug20180616 業務システムをAppServiceで運用しよう #きたあず #jazug
20180616 業務システムをAppServiceで運用しよう #きたあず #jazugKatsuya Shimizu
 
SappoRo.R #3 LT: Shiny by RStudio
SappoRo.R #3 LT: Shiny by RStudioSappoRo.R #3 LT: Shiny by RStudio
SappoRo.R #3 LT: Shiny by RStudioMizumoto Atsushi
 
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい! request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい! Masato Noguchi
 
Web事例からみたセマンティックウェブ/野田 健夫
Web事例からみたセマンティックウェブ/野田 健夫Web事例からみたセマンティックウェブ/野田 健夫
Web事例からみたセマンティックウェブ/野田 健夫kurubushionline
 
Web API を気軽に使える ツールやサービスのご紹介
Web API を気軽に使えるツールやサービスのご紹介Web API を気軽に使えるツールやサービスのご紹介
Web API を気軽に使える ツールやサービスのご紹介CData Software Japan
 
NET MAUI for .NET 7 for iOS, Android app development
 NET MAUI for .NET 7 for iOS, Android app development  NET MAUI for .NET 7 for iOS, Android app development
NET MAUI for .NET 7 for iOS, Android app development Shotaro Suzuki
 
Api gurunavi
Api gurunaviApi gurunavi
Api gurunaviJun Chiba
 
ADO.NETでつながるクラウドデータ連携
ADO.NETでつながるクラウドデータ連携ADO.NETでつながるクラウドデータ連携
ADO.NETでつながるクラウドデータ連携CData Software Japan
 
HTML5とWeb開発に関する最新動向
HTML5とWeb開発に関する最新動向HTML5とWeb開発に関する最新動向
HTML5とWeb開発に関する最新動向Shumpei Shiraishi
 
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発Daizen Ikehara
 
Googleクラウドサービスを利用したシステム構築
Googleクラウドサービスを利用したシステム構築Googleクラウドサービスを利用したシステム構築
Googleクラウドサービスを利用したシステム構築Naomichi Yamakita
 
Hands on PhotoBlog App with WordPress REST API and App Inventor
Hands on PhotoBlog App with WordPress REST API and App InventorHands on PhotoBlog App with WordPress REST API and App Inventor
Hands on PhotoBlog App with WordPress REST API and App InventorHong Chen
 
JavaScript on GitHub (#kyotojs)
JavaScript on GitHub  (#kyotojs)JavaScript on GitHub  (#kyotojs)
JavaScript on GitHub (#kyotojs)y_uuki
 
WebComponentsをPolymerとgulpとyeomanでさっくり使い始めよう
WebComponentsをPolymerとgulpとyeomanでさっくり使い始めようWebComponentsをPolymerとgulpとyeomanでさっくり使い始めよう
WebComponentsをPolymerとgulpとyeomanでさっくり使い始めようHidetaka Okamoto
 

Similaire à JavaScriptでできる電力使用状況グラフ (20)

WebIntentsにより拓かれる次のWeb
WebIntentsにより拓かれる次のWebWebIntentsにより拓かれる次のWeb
WebIntentsにより拓かれる次のWeb
 
20180616 業務システムをAppServiceで運用しよう #きたあず #jazug
20180616 業務システムをAppServiceで運用しよう #きたあず #jazug20180616 業務システムをAppServiceで運用しよう #きたあず #jazug
20180616 業務システムをAppServiceで運用しよう #きたあず #jazug
 
9th nov2012 kof2012
9th nov2012 kof20129th nov2012 kof2012
9th nov2012 kof2012
 
SappoRo.R #3 LT: Shiny by RStudio
SappoRo.R #3 LT: Shiny by RStudioSappoRo.R #3 LT: Shiny by RStudio
SappoRo.R #3 LT: Shiny by RStudio
 
APIMeetup 20170329_ichimura
APIMeetup 20170329_ichimuraAPIMeetup 20170329_ichimura
APIMeetup 20170329_ichimura
 
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい! request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
 
Web事例からみたセマンティックウェブ/野田 健夫
Web事例からみたセマンティックウェブ/野田 健夫Web事例からみたセマンティックウェブ/野田 健夫
Web事例からみたセマンティックウェブ/野田 健夫
 
Qcon slide 20130423
Qcon slide 20130423Qcon slide 20130423
Qcon slide 20130423
 
Web API を気軽に使える ツールやサービスのご紹介
Web API を気軽に使えるツールやサービスのご紹介Web API を気軽に使えるツールやサービスのご紹介
Web API を気軽に使える ツールやサービスのご紹介
 
NET MAUI for .NET 7 for iOS, Android app development
 NET MAUI for .NET 7 for iOS, Android app development  NET MAUI for .NET 7 for iOS, Android app development
NET MAUI for .NET 7 for iOS, Android app development
 
Api gurunavi
Api gurunaviApi gurunavi
Api gurunavi
 
sgvizler
sgvizlersgvizler
sgvizler
 
ADO.NETでつながるクラウドデータ連携
ADO.NETでつながるクラウドデータ連携ADO.NETでつながるクラウドデータ連携
ADO.NETでつながるクラウドデータ連携
 
HTML5とWeb開発に関する最新動向
HTML5とWeb開発に関する最新動向HTML5とWeb開発に関する最新動向
HTML5とWeb開発に関する最新動向
 
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
 
Googleクラウドサービスを利用したシステム構築
Googleクラウドサービスを利用したシステム構築Googleクラウドサービスを利用したシステム構築
Googleクラウドサービスを利用したシステム構築
 
Hands on PhotoBlog App with WordPress REST API and App Inventor
Hands on PhotoBlog App with WordPress REST API and App InventorHands on PhotoBlog App with WordPress REST API and App Inventor
Hands on PhotoBlog App with WordPress REST API and App Inventor
 
AWS Black Belt Online Seminar AWS Amplify
AWS Black Belt Online Seminar AWS AmplifyAWS Black Belt Online Seminar AWS Amplify
AWS Black Belt Online Seminar AWS Amplify
 
JavaScript on GitHub (#kyotojs)
JavaScript on GitHub  (#kyotojs)JavaScript on GitHub  (#kyotojs)
JavaScript on GitHub (#kyotojs)
 
WebComponentsをPolymerとgulpとyeomanでさっくり使い始めよう
WebComponentsをPolymerとgulpとyeomanでさっくり使い始めようWebComponentsをPolymerとgulpとyeomanでさっくり使い始めよう
WebComponentsをPolymerとgulpとyeomanでさっくり使い始めよう
 

Plus de Yuko Toriyama

好きなこと続けよう!エンゼルパイから始まった
好きなこと続けよう!エンゼルパイから始まった好きなこと続けよう!エンゼルパイから始まった
好きなこと続けよう!エンゼルパイから始まったYuko Toriyama
 
5分でできる!WordPressでピンタレスト風テーマ
5分でできる!WordPressでピンタレスト風テーマ5分でできる!WordPressでピンタレスト風テーマ
5分でできる!WordPressでピンタレスト風テーマYuko Toriyama
 
カスタム投稿タイプでお菓子メーカーを登録して今日食べたお菓子にひもづけるには?
カスタム投稿タイプでお菓子メーカーを登録して今日食べたお菓子にひもづけるには?カスタム投稿タイプでお菓子メーカーを登録して今日食べたお菓子にひもづけるには?
カスタム投稿タイプでお菓子メーカーを登録して今日食べたお菓子にひもづけるには?Yuko Toriyama
 
WordPressで提供するWeb API
WordPressで提供するWeb APIWordPressで提供するWeb API
WordPressで提供するWeb APIYuko Toriyama
 
WordPressでパスワード保護
WordPressでパスワード保護WordPressでパスワード保護
WordPressでパスワード保護Yuko Toriyama
 
WordPress で構築する企業サイト 〜静的ページからCMSへ〜
WordPress で構築する企業サイト 〜静的ページからCMSへ〜WordPress で構築する企業サイト 〜静的ページからCMSへ〜
WordPress で構築する企業サイト 〜静的ページからCMSへ〜Yuko Toriyama
 

Plus de Yuko Toriyama (6)

好きなこと続けよう!エンゼルパイから始まった
好きなこと続けよう!エンゼルパイから始まった好きなこと続けよう!エンゼルパイから始まった
好きなこと続けよう!エンゼルパイから始まった
 
5分でできる!WordPressでピンタレスト風テーマ
5分でできる!WordPressでピンタレスト風テーマ5分でできる!WordPressでピンタレスト風テーマ
5分でできる!WordPressでピンタレスト風テーマ
 
カスタム投稿タイプでお菓子メーカーを登録して今日食べたお菓子にひもづけるには?
カスタム投稿タイプでお菓子メーカーを登録して今日食べたお菓子にひもづけるには?カスタム投稿タイプでお菓子メーカーを登録して今日食べたお菓子にひもづけるには?
カスタム投稿タイプでお菓子メーカーを登録して今日食べたお菓子にひもづけるには?
 
WordPressで提供するWeb API
WordPressで提供するWeb APIWordPressで提供するWeb API
WordPressで提供するWeb API
 
WordPressでパスワード保護
WordPressでパスワード保護WordPressでパスワード保護
WordPressでパスワード保護
 
WordPress で構築する企業サイト 〜静的ページからCMSへ〜
WordPress で構築する企業サイト 〜静的ページからCMSへ〜WordPress で構築する企業サイト 〜静的ページからCMSへ〜
WordPress で構築する企業サイト 〜静的ページからCMSへ〜
 

JavaScriptでできる電力使用状況グラフ