追記: やっぱ、重なりが以前のaddと違うのは良くないのでもう少し考えようかなと思ったけれど、長い目で見たら使いやすい方が良いと思いつつあります。 以前のadd v1.08.6 http://jsfiddle.net/UkdvS/347/ 今回のv1.08.7b http://jsfiddle.net/UkdvS/349/ v1.08.7b4現在: v1.08.7b3までは、複合チャートのadd, after, beforeメソッドを使う時の、チャート領域の形に影響するプロパティを「奥側のチャートに依存させる」ことを考えていましたが、これらもタイトルと同様に前側のチャートに連動させようと思います。 おそらくその方が、使う側から見てシンプルだと思うからです。

.add() メソッド

関連メソッド: .before()//前に追加、.after()//後ろに追加addと同じ

記述例:

    ccchart
      .init('hoge1', data1)
      .add(data2)//data2のchartを後ろに追加 data2のY軸は右
      
    ccchart
      .init('hoge1', data1)
      .before(data2)//data2のchartを前に追加 data2のY軸は左
      
    ccchart
      .init('hoge1', data1)
      .after(data2)//addと同じ data2のchartを後ろに追加 data2のY軸は右

機能:

X軸(横)が共通している2つのチャートを重ねて表示する。
重なり
タイトル
Y軸
サイズ、チャート領域、色など前面チャートの設定が優先のプロパティ
凡例

制限事項:

 
  • 重ねた下のchartにはマーカーとツールチップがつかない><

    追加された関連プロパティ:

    チャートデータ用
    config.hanreisYSpace //最初の凡例と次の凡例の隙間 default 10
    
    ccchartオブジェクト配下
    ccchart.addFront object 前に描画するチャートのオプションやcallback
    ccchart.addBack   object 後ろに描画するチャートのオプションやcallback
      例:{id: canvasのid名, op: initなどの引数op, callback: initなどの引数callback};
    
    ざっくりフロー

    hoge1: afterとadd

    data2を後ろへ追加する

    <script src="ccchart-v1.08.7.js" charset="utf-8"></script>
    <canvas id="hoge1"></canvas>
    <script>
    ccchart
        .init('hoge1', data1)
        .add(data2) //data2をdata1の後ろへ追加 .after(data2)も同じ 
    </script>
    
    data1がタイトルになり、前に来る。
        

    hoge2: before

    <script src="ccchart-v1.08.7.js" charset="utf-8"></script>
    <canvas id="hoge2"></canvas>
    <script>
    ccchart
        .init('hoge2', data1)
        .before(data2) //data2をdata1の前へ追加
    </script>
    
    data2がタイトルになり、前に来る。
        

    hoge3: 切り替え

    <script src="ccchart-v1.08.7.js" charset="utf-8"></script>
    <canvas id="hoge3"></canvas>
    <script>
    ccchart
        .init('hoge3', data1)
        .add(data2)
    </script>
    
    //切り替え例
    <button onclick="
      this.tgl = (this.tgl === false)? true:false;
    
      if(this.tgl){
        ccchart
          .init('hoge3', data1)
          .before(data2)
      } else {
        ccchart
          .init('hoge3', data1)
          .add(data2)
      }
    
      ">add(or after)/before 切り替え </button>
        
    ※この場合lineチャートは前に出るとマーカー等が表示されます

    hoge4: onlyChart, width, height

    チャート色や形などに影響する次のプロパティは前面のチャートに依存する。
    <script src="ccchart-v1.08.7.js" charset="utf-8"></script>
    <canvas id="hoge4"></canvas>
    <script>
    ccchart
        .init('hoge4', {//こっちが後ろ
        "config": {
            "type": "area",
            "title": "data3",
            "subtitle": "あいうえお",
            "minY": 0,
            "unit":"data3",
            "borderWidth": 4,
            "hanreiMarkerStyle": 'arc'
        },
        "data": [
            ["年度",2007,2008,2009,2010,2011,2012,2013],
            ["0-data4",5,53,68,95,62,67,10],
            ["1-data4",23,45,55,69,68,36,20],
            ["2-data4",13,32,65,45,66,27,30],
            ["3-data4",17,23,32,9,16,27,32]/*,
            ["4-data4",39,63,25,25,44,67,60],
            ["5-data4",20,13,31,20,49,30,80]*/
        ]
    })
        .before({//beforeなのでこっちが前 onlyChartやサイズ関連はこっちに依存する
        "config": {
            "type": "line",
            "title": "data5",
            "minY": 0,
            "onlyChart": "yes",
            "width":400,
            "height":300,
            "unit":"data5",
            "useMarker":"css-ring",
            "useVal": "yes",
            "borderWidth": 4,
            "hanreiMarkerStyle": 'arc',
            "colorSet": ["#0c6","#fff"]
        },
        "data": [
            ["年度",2007,2008,2009,2010,2011,2012,2013],
            ["0-data5",3,43,45,35,56,67,90],
            ["1-data5",20,13,31,20,42,30,80]
    
        ]
    })
    </script>
        

    hoge5: bg, textColors, shadows...

    チャート色や形などに影響する次のプロパティは前面のチャートに依存する。
    <script src="ccchart-v1.08.7.js" charset="utf-8"></script>
    <canvas id="hoge5"></canvas>
    <script>
    
    var data5 = {//こっちが前 onlyChartやサイズ関連はこっちに依存する
        "config": {
            "type": "line",
            "title": "data5",
            "subtitle": "lineチャート側",
            "bg": "#fff",//bgなどは前面が優先
            "textColors": {"title":"#777","subTitle":"#777",
              //"x":"#999","y":"#999","hanrei":"#777","unit":"#777","memo":"#666"},
            "shadows": {
              "hanrei" : ['#aaa', 5, 5, 5],
              "line": ['#666', 5, 5, 5]
            },
            "colorSet": 
                  ["orange","magenta"],
            "hanreiColor":"blue",//hanreiColorなどは優先順位が高い。
              //hanreiColor > textColor > textColors.hanrei > #ccc
            "minY": 0,
            "unit":"data5",
            "useMarker":"css-ring",
            "useVal": "yes",
            "borderWidth": 4,
            "hanreiMarkerStyle": 'arc'
        },
        "data": [
            ["年度",2007,2008,2009,2010,2011,2012,2013],
            ["0-data5",3,43,45,35,56,67,90],
            ["1-data5",20,13,31,20,42,30,80]
        ]
    }
    
    var data6 ={//addなのでこの円チャートは後ろ
        "config": {
            "type": "pie",        
            "title": "data6",
            "subtitle": "円チャート側",
            "hanreiColor":"red",//hanreiColorなどは優先順位が高いので、
              //前面のtextColors指定に優先する。hanreiColor > textColor > textColors.hanrei > #ccc
            "useVal": "yes",
            "pieRingWidth": 60,
            "pieHoleRadius": 50,
            "unit":"data6",
            "borderWidth": 4,
            "hanreiMarkerStyle": 'arc'
        },
        "data": [
            ["年度",2007,2008,2009,2010,2011,2012,2013],
            ["0-data6",5,53,68,95,62,67,10],
            ["1-data6",23,45,55,69,68,36,20],
            ["2-data6",13,32,65,45,66,27,30],
            ["3-data6",17,23,32,9,16,27,32] ,
            ["4-data6",39,63,25,25,44,67,60],
            ["5-data6",20,13,31,20,49,30,80] 
        ]
    }
    
    ccchart
        .init('hoge5', data5)
        .add(data6)
        
    </script>
        

    hoge6: .jsで読み込む XHRなので要httpdサーバー

    この他の.jsのデモ
    
    <script src="ccchart-v1.08.7.js" charset="utf-8"></script>
    <canvas id="hoge6"></canvas>
    <script>
    ccchart
        .init('hoge6', data1)
        .add(dataJS)
    </script>