埋め込みチャートはスプレッドシート データを使用し、転置自体はサポートしていないため、埋め込みグラフの場合はデータを転置する必要があります。ただし、これはプログラムで処理でき、転置操作自体は簡単です。
以下のコードでは、転置されたデータの作業コピーを保存するために使用される「Scratch」という名前のシートが存在すると想定しています。邪魔にならないように、このシートを作成して非表示にすることができます。
// Uses 2D Arrays Library, see https://sites.google.com/site/scriptsexamples/custom-methods/2d-arrays-library
function buildChart() {
var taskSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Tasks");
var lChartBuilder = taskSheet.newChart(); taskSheet.removeChart(chart)
var srcData = taskSheet.getRange("Tasks!C39:S40").getValues();
// Transpose the table (using 2D Array Library)
var scratchData = ArrayLib.transpose(srcData);
var numRows = scratchData.length;
var numCols = scratchData[0].length; // assume all rows are same width
// Write scratch values to scratch sheet.
var scratchSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Scratch");
scratchSheet.getRange(1, 1, numRows, numCols).setValues( scratchData );
SpreadsheetApp.flush();
lChartBuilder.addRange(scratchSheet.getDataRange());
lChartBuilder.setOption("title", "Task Burndown");
var lChart = lChartBuilder.asLineChart().setPosition(1, 1, 1, 1).build();
taskSheet.insertChart(lChart);
};
おまけに...このようにデータをフォーマットすると、最初の行/列がヘッダーになり、凡例として機能します。

さて、まだ解決すべき問題がいくつかあります。
- このコードは、実行するたびに新しいグラフを作成しますが、代わりに変更する必要がある場合があります。(代わりに、転置されたデータを更新し、変更された場合は新しい範囲を取得するようにチャートを変更します。)
- X 軸には、すべてのタスク名が表示されるわけではありません。制御できる場合があります。
あなたは、データを転置したくないと言います。残念ながら、現在のチャートの化身ではそれを回避する方法はありません。自分でデータを操作する必要があります。別のチャート ライブラリを使用してウィジェットを挿入すると機能する可能性がありますが、スプレッドシートのウィジェット サポートは廃止されました。幸いなことに、私はすでに同様のコードを持っていたので、見た目よりも簡単に作業できました。ArrayLib の他のフィルタリング機能のいくつかを確認する必要があります。それを使用して多くのことができます。