Google Apps Scriptでグラフを操作する

週末プログラミングとしてやったことを書いておきます。

Google Apps ScriptでLINE botを作れたので、GASを勉強中です。

GoogleAppsScriptとLINE Botで自分用の「文字起こし君」を作ってみた

スプレッドシートとGoogle Apps Scriptを組み合わせることができるのも、GASのメリットです。

スプレッドシートで作成したグラフを操作してみます。

グラフを取得して画像を保存する

まず、スプレッドシートにすでにグラフがあるとします。それをGASで取得して、Googleドライブに保存します。

これも先駆者がいますので、真似るだけでした。

Google Apps ScriptでスプレッドシートのグラフをGoogleドライブに保存する

上記のスクリプトを実行するだけで、スプレッドシート上にあるグラフが、問題なく同じフォルダに保存されました。

GASでグラフの軸の範囲を修正する

ただ、GASを通してグラフを取得すると、スプレッドシート上の設定がリセットされて、グラフの軸がデフォルト状態に戻ってしまうようです。

これは困りました。グラフの原点は揃えるのが重要です。原点が変動してしまうと、視覚的に誤解を生んでしまう可能性が出てきます。

ので、こちらを参考に、取得したグラフを再度変更することにしました。

GASで棒、円、折れ線など各種グラフを作成、変更、削除するための基本 (1/2)Excel VBAプログラマーのためのGoogle Apps Script入門(8IT

グラフのオプション指定として、

.setOption(‘vAxis.viewWindow.min’, 0)

とすれば、Y軸をゼロにできます。

Google Spreadsheet, Google Drive, Google Apps Scriptでレポーティングの簡単自動化 – Reports

それで軸の開始をゼロにすることができました。

が、2系列使っている場合、両方の軸がゼロにセットされてしまいました。2系列の場合は、どちらのシリーズであるかを明確に指定する必要があります。こちらの記事に、系列ごとの指定が書いてありました。

こんな感じです。

.setOption(‘vAxes’, {0: {title: ‘€’, format: ‘short’, textStyle: {fontSize: 10}, titleTextStyle: {fontSize : 8}, viewWindow: {min: 79000000}}})

How do I change the number format of the vertical axis? (when using the EmbeddedChartBuilder in Apps script spreadsheet service) – Stack Overflow

これでグラフの修正が完了です。

GASは簡単なスクリプトで作成できること、Googleドライブと連携できること、ウェブサーバーに使えることが良いですね。