-
-
JSONみたいなデータを読み込んでグラフにする
2015/10/19 折れ線グラフ
まずは、サンプルコードの実行結果はこちら
123456789101112131415161718192021222324252627282930<!DOCTYPE html><head><meta charset="utf-8"><title>折れ線グラフの線を色々な形にする</title><script src="../js/d3.js"></script><style>svg{width:400px;height:300px;border:2px solid red;}.line{fill:none; stroke:black;}.axis text{font-size:11px;}.axis path,.axis line{ fill:none; stroke:black;}.axisX line{fill:none; stroke:black;}.red { stroke: red;}.blue { stroke: blue;}.green{ stroke: green;}</style></head><body><h2>折れ線グラフの線を色々な形にする</h2><svg id="graph"></svg><script src="test.js"></script></body></html>12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394/*折れ線グラフを表示するサンプルコード*/var svgWidth = 400; // SVG要素の幅var svgHeight = 240; // SVG要素の高さvar offsetX = 32; // 横方向のオフセットvar offsetY = 20; // 縦方向のオフセットvar scale = 2.00; // 2倍のサイズ// 今回は3つのデータセットを用意var arrData = [{ year : 2006, value1 : 12, value2 : 92, value3 : 47 },{ year : 2007, value1 : 42, value2 : 67, value3 : 73 },{ year : 2008, value1 : 70, value2 : 55, value3 : 79 },{ year : 2009, value1 : 55, value2 : 45, value3 : 51 },{ year : 2010, value1 : 66, value2 : 36, value3 : 34 },{ year : 2011, value1 : 32, value2 : 51, value3 : 89 },{ year : 2012, value1 : 8 , value2 : 23, value3 : 9 },{ year : 2013, value1 : 20, value2 : 59, value3 : 26 },{ year : 2014, value1 : 29, value2 : 80, value3 : 37 },{ year : 2015, value1 : 60, value2 : 47, value3 : 54 }];var margin = svgWidth / (arrData.length - 1 );// 折れ線グラフの間隔/*データセットして、要素番号を指定して配列データを渡す*/drawGraph( arrData,"value1", "red" ,"linear"); // 折れ線グラフを表示drawGraph( arrData,"value2", "blue" ,"step" ); // 折れ線グラフを表示drawGraph( arrData,"value3", "green","basis" ); // 折れ線グラフを表示drawScale(); //目盛りを表示するfunction drawGraph( arrData,itemName,cssClassName,type){var line =d3.svg.line() // svgのライン.x(function(d,i){return offsetX + i * margin; // X座標は出現順番*間隔}).y(function(d,i){//データからY座標の分を引くreturn svgHeight - ( d[ itemName ] * scale ) - offsetY;}).interpolate(type);var lineElements =d3.select("#graph").append("path") // データの数だけpath要素が追加される.attr("class","line " + cssClassName ) // CSSクラスを指定.attr("d",line( arrData ) ); // 連続線を指定}function drawScale(){// 目盛りを表示するためのスケールを設定var yScale =d3.scale.linear() // スケールの設定.domain([0,100]) // 元のサイズ.range([scale*100,0]); // 実際の出力サイズ// 目盛りを表示するd3.select("#graph").append("g") // g要素の追加。目盛りを表示する要素.attr("class","axis") // CSSクラスを指定.attr("transform","translate(" + offsetX + ", " + offsetY + ")")/*scale = 2.00 の値を変えると表示倍率が変わりますが、縦の目盛り位置がずれてしまいます。今回は100を基準にしているため、 倍率を変化させても目盛りが正しく表示させるには、下記のコメントアウトの箇所のように書きます。*//*.attr("transform","translate(" +offsetX + ", " + ((100-(scale-1)*100) + offsetY ) + ")")*/.call(d3.svg.axis().scale(yScale) // スケールを摘要.orient("left") // 目盛りの表示位置を左側);d3.select("#graph").append("rect").attr("class","axisX").attr("width", svgWidth).attr("height",1).attr("transform","translate(" +offsetX + ", " + (svgHeight - offsetY - 0.5) + ")");}今回紹介するのも複数の線グ ...
-
-
2次元配列のデータを読み込んで、折れ線グラフを表示する
2015/10/19 二次元配列
2次元配列のデータを用意して、少し複雑なデータを読み込んで折れ線グラフを表示してみます。 サンプルコードの実行結果はこちら
123456789101112131415161718192021222324252627282930<!DOCTYPE html><head><meta charset="utf-8"><title>折れ線グラフの線を色々な形にする</title><script src="../js/d3.js"></script><style>svg{width:400px;height:300px;border:2px solid red;}.line{fill:none; stroke:black;}.axis text{font-size:11px;}.axis path,.axis line{ fill:none; stroke:black;}.axisX line{fill:none; stroke:black;}.red { stroke: red;}.blue { stroke: blue;}.green{ stroke: green;}</style></head><body><h2>折れ線グラフの線を色々な形にする</h2><svg id="graph"></svg><script src="test.js"></script></body></html>[cray ...
-
-
折れ線グラフを塗りつぶす
D3.jsでは両機内にを塗りつぶしたグラフを表示することができます。このとき、d3.svg.line()メソッドではなくて、d3.svg.area()メソッドを使います。 座標値を指定するx()、y0 ...
-
-
折れ線グラフを曲線、直線、階段状に表示する
D3.jsでは折れ線グラフを直線で表示するのではなく、曲線、階段状に表示することもできます。D3.jsでは、下記の表にある補間方法があります。 補間方法 説明 linear 直線(両端が開いている) ...
-
-
複数の折れ線グラフを表示する
複数の折れ線グラフを表示します。今回は3つのデータを用意して、3つの折れ線グラフを表示します。目盛りを表示する部分と折れ線グラフを描画する部分を関数にします。 サンプルコードの実行結果はこちら [cr ...
-
-
折れ線グラフの縦方向の動きを分かりやすくする
2015/10/19 折れ線グラフ
縦方向の表示を2倍に、目盛り(縦、横軸)を表示する グラフの変化を大きく見せるために縦方向の表示を2倍にします。 サンプルコードの実行結果はこちら [crayon-69a6c18dca91517407 ...
-
-
折れ線グラフを作ってみる
棒グラフ、円グラフと同じくらいよく見るのが折れ線グラフです。体重や為替相場など継続的に変化するデータを把握する時に使われます。円グラフはD3.jsに用意されたレイアウト機能を利用しましたが、折れ線グラ ...
-
-
外部ファイルを読み込んで円グラフを表示させる
2015/10/19 CSVファイルを読込
CSVデータを読み込んでグラフを表示させてみます。 サンプルコードの実行結果はこちら
123456789101112131415161718192021222324252627282930313233343536<!DOCTYPE html><head><meta charset="utf-8"><title>各科目の点数を年度別に表示する</title><script src="../js/d3.js"></script><style>svg{width:320px;height:320px;border:2px solid red;}.pie{fill:yellow;stroke:green}.total{ font-size:12px;text-anchor:middle;}.pieNum{font-size:16px;text-anchor:middle;}</style></head><body><h2>年度別科目別の成績</h2><svg id="graph"></svg><form><select id="year"><option value="2012">2012年</option><option value="2013">2013年</option><option value="2014">2014年</option></select></form><script src="test.js"></script></body></html>[crayon-69a6c18dcae16467 ...
-
-
円グラフに数値とテキストを加えてみる
2015/10/19 centroid(), 各扇の値を表示, 各扇の合計値を表示
円グラフの中央にテキストを表示する 円グラフの中に文字を表示してみます。円グラフ中央に合計値を表示します。D3.jsでは便利な機能があります。配列内の合計値を取得するには、d3.sum()メソッドを使 ...
-
-
円グラフにアニメーションを付けて表示する
2015/10/18 attrTween()メソッド, interpolate()メソッド, アニメーション, 円グラフ, 色を付ける
記事のタイトルの通り、円グラフをアニメーションさせながら表示させてみます。円グラフを0度から360度まで1周して表示されるアニメーションを作成してみます。基本てなことは棒グラフのアニメーションと一緒で ...