• about me
  • コンテンツについて
  • メルマガ登録

コーディング関連の情報をお届けします。

ウェブ制作、コーディング初心者のメモ

  • コンテンツについて
  • メルマガ登録
  • about me
no image

D3.js

JSONみたいなデータを読み込んでグラフにする

2015/10/19    折れ線グラフ

まずは、サンプルコードの実行結果はこちら

index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!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>

test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/*
折れ線グラフを表示するサンプルコード
*/
 
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) + ")");
 
}

今回紹介するのも複数の線グ ...

no image

D3.js

2次元配列のデータを読み込んで、折れ線グラフを表示する

2015/10/19    二次元配列

2次元配列のデータを用意して、少し複雑なデータを読み込んで折れ線グラフを表示してみます。 サンプルコードの実行結果はこちら

index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!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 ...

no image

D3.js

折れ線グラフを塗りつぶす

2015/10/19    折れ線グラフ, 領域内塗りつぶし

D3.jsでは両機内にを塗りつぶしたグラフを表示することができます。このとき、d3.svg.line()メソッドではなくて、d3.svg.area()メソッドを使います。 座標値を指定するx()、y0 ...

no image

D3.js

折れ線グラフを曲線、直線、階段状に表示する

2015/10/19    折れ線グラフ, 曲線, 直線, 階段状

D3.jsでは折れ線グラフを直線で表示するのではなく、曲線、階段状に表示することもできます。D3.jsでは、下記の表にある補間方法があります。 補間方法 説明 linear 直線(両端が開いている) ...

no image

D3.js

複数の折れ線グラフを表示する

2015/10/19    折れ線グラフ, 複数の折れ線グラフ

複数の折れ線グラフを表示します。今回は3つのデータを用意して、3つの折れ線グラフを表示します。目盛りを表示する部分と折れ線グラフを描画する部分を関数にします。 サンプルコードの実行結果はこちら [cr ...

no image

D3.js

折れ線グラフの縦方向の動きを分かりやすくする

2015/10/19    折れ線グラフ

縦方向の表示を2倍に、目盛り(縦、横軸)を表示する グラフの変化を大きく見せるために縦方向の表示を2倍にします。 サンプルコードの実行結果はこちら [crayon-69b68f491ea1d68625 ...

no image

D3.js

折れ線グラフを作ってみる

2015/10/19    折れ線グラフ, 連続線

棒グラフ、円グラフと同じくらいよく見るのが折れ線グラフです。体重や為替相場など継続的に変化するデータを把握する時に使われます。円グラフはD3.jsに用意されたレイアウト機能を利用しましたが、折れ線グラ ...

no image

D3.js

外部ファイルを読み込んで円グラフを表示させる

2015/10/19    CSVファイルを読込

CSVデータを読み込んでグラフを表示させてみます。 サンプルコードの実行結果はこちら

index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!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-69b68f491ee58590 ...

no image

D3.js

円グラフに数値とテキストを加えてみる

2015/10/19    centroid(), 各扇の値を表示, 各扇の合計値を表示

円グラフの中央にテキストを表示する 円グラフの中に文字を表示してみます。円グラフ中央に合計値を表示します。D3.jsでは便利な機能があります。配列内の合計値を取得するには、d3.sum()メソッドを使 ...

no image

D3.js

円グラフにアニメーションを付けて表示する

2015/10/18    attrTween()メソッド, interpolate()メソッド, アニメーション, 円グラフ, 色を付ける

記事のタイトルの通り、円グラフをアニメーションさせながら表示させてみます。円グラフを0度から360度まで1周して表示されるアニメーションを作成してみます。基本てなことは棒グラフのアニメーションと一緒で ...

« Prev 1 … 7 8 9 10 11 … 40 Next »
  • Twitter
  • Share
  • Pocket
  • Hatena
  • LINE
  • URLコピー

参加中のランキング



にほんブログ村 IT技術ブログへ
にほんブログ村

最近の投稿

  • トグルスイッチを設定する
  • 項目選択の複数ウィジェットをグループ化する
  • <select>により項目選択
  • 値を選択するボタンを表示する
  • ボタンを設定する

最近のコメント

    アーカイブ

    • 2016年5月
    • 2016年4月
    • 2016年3月
    • 2016年2月
    • 2016年1月
    • 2015年12月
    • 2015年11月
    • 2015年10月
    • 2015年9月
    • 2015年8月
    • 2015年7月
    • 2015年6月
    • 2015年5月

    カテゴリー

    • CSS (57)
    • D3.js (75)
    • HTMLページ構造 (18)
    • HTML文章関連 (25)
    • javaScript (41)
    • jQuery (56)
    • jQueryMobile (29)
    • php (91)

    タグ

    break文 CSVファイルを読込 DOM for文 if文 imagesLoaded jQuery独自 Masonry switch文 while文 XML アイコン アニメーション イベント グラデーション グローバル変数 セレクター タブ パックレイアウト ヒストグラム ヒートマップ フォーム フレックスコンテナ ボタン ポップアップ メソッド メソッドチェーン メタ文字 ローカル変数 優先順位 円グラフ 四則演算 変数 折れ線グラフ 散布図 条件分岐 横に並べる 正規表現 演算子 縦棒グラフ 繰り返し 論理演算子 連想配列 配列 関数

    スポンサードリンク

    コーディング関連の情報をお届けします。

    ウェブ制作、コーディング初心者のメモ

    © 2026 ウェブ制作、コーディング初心者のメモ