TeeChart JavaScript JP

このページは、TeeChart JavaScript JP とフリーの Data Driven Documents (D3.jp) で
折れ線グラフを作成する例を比較したものです。
TeeChart JavaScript JP を利用すれば圧倒的に少ないコード量で、様々な機能・表現が可能です。
  《 TeeChart JavaScript ⦆
《 D3.js ⦆
上図のチャートを表示するための、両者のコードを比較してみましょう。
(TeeChart の例では、より少ないコードで、D3 の例と比べてもすでにより豊かな表示を実現できています。)
《 D3.js ⦆ 《 TeeChart JavaScript ⦆
   // 2. マージンを設定
   var margin = {top: 50, right: 50, bottom: 50, left: 50}
      , width = window.innerWidth - margin.left - margin.right // window の width を使用
      , height = window.innerHeight - margin.top - margin.bottom; // window の height を使用

   // データポイントの数
   var n = 21;

   // 5. X スケールはデータの index を使用
   var xScale = d3.scaleLinear()
      .domain([0, n-1]) // input
      .range([0, width]); // output

   // 6. Y スケールはランダム値を使用
   var yScale = d3.scaleLinear()
      .domain([0, 10]) // input
      .range([height, 0]); // output

   // 7. d3 の line ジェネレータ
   var line = d3.line()
      .x(function(d, i) { return xScale(i); }) // line ジェネレータの x 値を設定
      .y(function(d) { return yScale(d.y); }) // line ジェネレータの y 値を設定

   // 8. 長さNのオブジェクトの配列。各オブジェクトはキー -> 値のペアを持ち、キーは「y」で、値は乱数
   var dataset = d3.range(n).map(function(d) { return {"y": d3.randomUniform(10)() } })

   // 1. SVG をページに追加し、 #2 のコードを使用
   var svg = d3.select("body").append("svg")
      .attr("width", width + margin.left + margin.right)
      .attr("height", height + margin.top + margin.bottom)
      .append("g")
      .attr("transform", "translate(" + margin.left + "," + margin.top + ")");

   // 3. グループタグの x 軸を呼ぶ
   svg.append("g")
      .attr("class", "x axis")
      .attr("transform", "translate(0," + height + ")")
      .call(d3.axisBottom(xScale)); // d3.axisBottom で軸コンポーネントを作成

   // 4. グループタグの y 軸を呼ぶ
   svg.append("g")
      .attr("class", "y axis")
      .call(d3.axisLeft(yScale)); // d3.axisLeft で軸コンポーネントを作成

   // 9. path を追加, データバインド, line ジェネレータのコール
   svg.append("path")
      .datum(dataset) // 10. line にデータをバインド
      .attr("class", "line") // スタイリングの class をアサイン
      .attr("d", line); // 11. line ジェネレータのコール

   // 12. 各データポイントに四角形を追加
   svg.selectAll(".dot")
      .data(dataset)
      .enter().append("rect") // enter().append() メソッドを使用
      .attr("class", "dot") // スタイリングの class をアサイン
      .attr("x", function (d, i) { return xScale(i) - 6 })
      .attr("y", function (d) { return yScale(d.y) - 6 })
      .attr("width", 12)
      .attr("height", 12)
   </script>
   <script type="text/javascript">
      var Chart1;
      function draw() {
         // chart canvas を追加
         Chart1 = new Tee.Chart("canvas");
         //チャートに line series を追加
         var series = new Tee.Line(Chart1);
         Chart1.addSeries(series);

         //20個のランダム・データポイントを生成
         var v = new Array(20);
         for (var t = 0; t < v.length; t++) v[t] = Math.random() * 10;

         //データを設定
         series.data.values = v;
         //data points visible を設定
         Chart1.series.items[0].pointer.visible = true;
         //chart タイトルを設定
         Chart1.title.text = "Line";
         //chart テーマを設定
         changeTheme(Chart1, "minimal");
         //凡例を表示
         Chart1.legend.visible = true;

         Chart1.draw();
      }
</script>
また、D3では非常に困難な、チャートに関する様々な処理が TeeChart JavaScript を使用して作成したチャートではとても容易に実現できます。
以下は、その一例です。

◆ ズームイン: マウスの左ボタンを押し右下にドラッグします。
◆ ズームアウト: マウスの左ボタンを押し左上にドラッグします。
◆ スクロール: マウスの右ボタンを押してグラフをドラッグします。
◆ タイトルを表示する:タイトルプロパティを設定するだけです。

Chart1.title.text = "Line";

◆ ポインターを表示する:Pointer.Visible プロジェクトを Trueに設定するだけです。

Chart1.series.items[0].pointer.visible = true;

これは D3 では、以下のコード例のように正確な位置に正方形を描画しなければなりません。

   // 12.各データポイントに四角形を追加
   svg.selectAll(".dot")
      .data(dataset)
      .enter().append("rect") // enter().append() メソッドを使用
      .attr("class", "dot") //スタイリングの class をアサイン
      .attr("x", function (d, i) { return xScale(i) - 6 })
      .attr("y", function (d) { return yScale(d.y) - 6 })
      .attr("width", 12)
      .attr("height", 12)


◆ 凡例を表示する:legend.visible プロパティを True に設定するだけです。

Chart1.legend.visible = true;

D3 でこれを実現するには、非常に多くのコードを描く必要があります。

また、例えば Line チャートから散布図に書き換えるには、D3 ではほとんどのコードを書き直す必要がありますが、TeeChart JavaScript では series のタイプを変更するだけです。

var series = new Tee.PointXY(Chart1);


以下のページでは TeeChart JavaScript JP で表現可能なチャートを豊富にご紹介しています。ぜひご覧ください。
※ Interner Exploler では正しく表示できません。

TeeChart JavaScript JP オンラインサンプル

体験版はこちらよりどうぞ。
Copyright (C) NEWTONE Corporation. All rights reserved.