-
-
CSVファイルからデータを読み込んで、ヒストグラムを表示する
2015/10/24 CSVファイルを読込, histogram, カスタム属性, ヒストグラム
クラス別の点数をデータにしたCSVファイルを読み込んで、ボタンをクリックするとほかのクラスの成績表がみれるプログラムをかきます。 サンプルコードの実行結果はこちら [crayon-69a6ad02a0 ...
-
-
ヒストグラムの表示データの範囲を指定
前回のヒストグラムの記事で点数の範囲を10点刻みではなく5点、20点など任意の範囲で表示できるようにしてみます。下記のように入力フォームを使ってみます。 サンプルコードの実行結果はこちら [crayo ...
-
-
ヒストグラムを作成する
ヒストグラムはデータの分布状況を調べるのに便利です。D3.jsではヒストグラムを表示するためのレイアウト機能が備え付けられています。 ヒストグラム作成の基本 HTMLファイルには、予めヒストグラムで表 ...
-
-
CSVファイルからデータを読み込んで、アニメーションも付けて散布図を表示してみる
タイトルの通りです。CSVファイルを読み込んで、散布図を表示します。今回の記事の後半部分では、読み込んだ数値に合わせてグラフの縦軸、横軸の幅も対応させた散布図を作成します。 サンプルコードの実行結果は ...
-
-
散布図でツールチップを表示してみる
グリッド上に配置されている円「●」にマウスカーソルがのったとき、ツールチップを表示します。グラフ上で表現できる情報には限りがあります。より多くの情報を表示したいときはツールチップが便利です。 サンプル ...
-
-
散布図にグリッドを表示してみる
目盛りの表示は何度もしました。散布図でも縦軸、横軸を表示しました。 今回は、グリッド(マス目)を表示します。 D3.jsでは、rangeメソッドを使うと範囲の値を自動的に生成します。 [crayon- ...
-
-
散布図のデータに応じて目盛りを調整する
散布図に目盛りを表示してみます。 サンプルコードの実行結果はこちら
1234567891011121314151617181920212223242526272829<!DOCTYPE html><head><meta charset="utf-8"><title>散布図のデータを定期的に更新する</title><script src="../js/d3.js"></script><style>svg{width:340px;height:340px;border:2px solid red;}.mark{ fill:red; stroke:none;}.axis text{font-size:12px;}.axis path,.axis line{fill:none;stroke:black;}</style></head><body><h2>散布図を表示する</h2><svg id="graph"></svg><script src="test.js"></script></body></html>123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124/*散布図を表示する*/var svgWidth = 300; // SVG要素の幅var svgHeight = 300; // SVG要素の高さvar offsetX = 30; // X座標のずれvar offsetY = -20; // Y座標のずれvar arrData = [[16,32],[64,48],[128,92],[70,150],[120,300],[45,90],[110,160],[300,20],[180,180],[15,145]];var circleElements = d3.select("#graph").selectAll("circle") // circle要素を追加.data(arrData);circleElements.enter().append("circle") // CSSクラスを指定.attr("class","mark").attr("cx",function(d,i){return d[0] + offsetX; // 1番目の要素をX表に指定}).attr("cy",function(d,i){return svgHeight - d[1] - offsetY; // 2番目の要素をY座標に指定}).attr("r",4); // 点の半径// アニメーション後の散布図に使用するデータを再設定function generateData(data){var result = data.map(function(d,i){// 配列の要素数だけ繰り返すvar x = Math.random() * svgWidth; // X座標を設定var y = Math.random() * svgHeight; // Y座標を設定return [x, y];});return result;}// 散布図を更新する関数function generateGraph(){circleElements.data(arrData).transition().attr("cx",function(d,i){return d[0] + offsetX;}).attr("cy",function(d,i){return svgHeight - d[1] - offsetY;});}function drawScale(){var maxX = d3.max(arrData,function(d,i){/*以下のようにd[ ]の添字を0を指定するとX座標の最大値を求めることができます。*/return d[0]; // X座標});var maxY = d3.max(arrData,function(d,i){/*以下のようにd[ ]の添字を1を指定するとY座標の最大値を求めることができます。*/return d[1]; // Y座標});// 縦の目盛りを表示するために縮尺設定var yScale =/*上記で求めた最大値maxYをここで使用する。*/d3.scale.linear() // 縮尺設定.domain([0, maxY]) // 元データの範囲.range([maxY, 0]); // 実際の出力サイズ// 目盛りを表示d3.select("#graph").append("g").attr("class","axis").attr("transform","translate(" + offsetX + ", " +( svgHeight - maxY - offsetY ) + ")" ).call(d3.svg.axis().scale(yScale).orient("left"));// 横の目盛りを表示するために縮尺設定var xScale =/*上記で求めた最大値maxXをここで使用する。*/d3.scale.linear() // 縮尺設定.domain([0, maxX]) // 元データの範囲.range([0, maxX]); // 実際の出力サイズ// 目盛りを表示d3.select("#graph").append("g").attr("class","axis").attr("transform","translate(" + offsetX + ", " +( svgHeight - offsetY ) + ")" ).call(d3.svg.axis().scale(xScale).orient("bottom"));}drawScale();// 一定時間後に行う処理setInterval(function(){arrData = generateData( arrData ); // データを更新generateGraph(); // グラフの更新(アニメーション)},2000);...
-
-
散布図を作成
2015/10/21 散布図
散布図は2つの項目の関係性を調べるのに利用します。。D3.jsでは散布図を表示すための専用のレイアウト機能は用意されていないので、SVG図形を作成して、自分で表示するための座標データを作成する必要があ ...
-
-
ボタンをクリックして、折れ線グラフの表示範囲を変える
JSONファイルからデータを読み込んで折れ線グラフを表示します。グラフのデータの読み込みは10年分のみにします。 サンプルコードの実行結果はこちら [crayon-69a6ad02a1bf999749 ...
-
-
データセットと日付を対応させてみる
2015/10/19 日付
前回の記事で、JSON形式のデータを扱ったデータには、折れ線グラフの数値だけではなく、年度のデータも含まれています。今回は横軸である下の目盛りにデータのの年数を表示します。 { year : 2006 ...