まずはこちらをご覧ください。
左の表をGAS(Google Apps Script)を使って右のグラフに落とし込むまでに様々なトラップに陥りました。その中のいくつかを簡単に紹介したいと思います。
ちなみに、正解とうたっているものはワタクシの環境で上手く動いた記述であって、イマドキかどうかは現段階ではあまり重要視していませんのでご了承ください。
●グラフに使う離れたセル範囲の指定
離れたセルどうしを選択する場合は、 たいてい .getRangeList(['A1', 'A5:B7', 'C2:C9']) なんかが出てくると思いますが、グラフでよくある、表題や凡例見出しなどでの飛び石範囲の指定はこれでは上手く動きませんでした。
正解は、
var xVal=sheet.getRange("B2:B7");
var yVal=sheet.getRange("D2:F7");
...
chart.addRange(xVal).addRange(yVal)
単純ですけど、わりと見落としやすいかもしれません。
●グラフの描画サイズ
ネットで検索すると、そこそこの確率で .setDimension(x,y) がヒットするのですが、これは多分古い仕様のようです。さらに、 .setPosition(x,y,offsetx,offsety) なんかも勘違いしやすいけど、これはグラフの位置(正しくはグラフの左上角の位置)を指定するものですね。
正解は、
.setOption('width',x)
.setOption('height',y)
これも単純ですけど、これ以外でサイズ指定が上手く動いているものにヒットしませんでした。というか、サイズ変更に言及したサイトがホントにないんですよね。基本の基本だから誰も書かないのでしょうか。
●凡例の表示
グラフを作ってみたらわかると思いますが、このグラフ積み上げグラフは縦軸横軸を入れ替えています。でも、 .asColumnChart とか使うと上手くいかない( .setStacked() が反映されない)ので、 .setChartType(Charts.ChartType.BAR) で普通にグラフを作った後に、
.setTransposeRowsAndColumns(true)
.setOption('isStacked',true)
と、二段階右折のようなことをするのですが、さて、この時の凡例は
.setOption('legend',{position:'場所',textStyle:{color: '色',fontSize: 数値}})
だけでは上手く表示されません。というか、凡例よりも、グラフ自体が意図した形になりません。
ここでの肝は、
.setNumHeaders(1)
を入れることです。これはスプレッドシート上の設定「~列を見出しして使用する」のスイッチなのでしょう。これを入れることによって、「A」「B」「C」が文字通り見出しとなってグラフが意図した形になり、凡例の設定も効くようになります。「凡例」だけに囚われてあーでもないこーでもないと余計な時間を過ごしてしましました。
参考になれば幸いです<(_ _)>
※コメント投稿者のブログIDはブログ作成者のみに通知されます