グラフ

Google Sheets API を使用すると、スプレッドシート内でグラフの作成や更新を 必要ありません。このページの例では、一般的な グラフ オペレーションを見ていきましょう。

これらの例は、HTTP リクエストという形式で示されています。これは、 ニュートラルです。異なる言語のバッチ アップデートを実装する方法については、 Google API クライアント ライブラリについては、 スプレッドシート

これらの例では、プレースホルダ SPREADSHEET_IDSHEET_ID は、 は、これらの ID を指定する場所を示しています。そのスプレッドシートの ID を入力します。取得できるもの: シート ID spreadsheets.get メソッドを使用します。「 範囲は A1 表記で指定します。「 Sheet1!A1:D5 です。

また、プレースホルダ CHART_ID は特定の ID の ID を示します。 表示されます。この ID は、Sheets API でグラフを作成するときに設定できます。 Sheets API で生成することもできます。次の ID を取得できます: 既存のグラフに spreadsheets.get メソッドを使用します。

最後に、プレースホルダ SOURCE_SHEET_ID は、シートに ソースデータを暗号化します。この例では、[Chart source(グラフのソース)] に表示されているテーブルです。

グラフのソースデータ

これらの例では、使用するスプレッドシートに次のソースがあるとします。 最初のシート (Sheet1) にあるデータを参照します。1 行目の文字列は、トレーニング データの 個別に選択できます。他のシートから読み取る方法の例については、 A1 表記をご覧ください。

A B C D E
1 モデル番号 セール - 1 月 セール - 2 月 販売 - 3 月 Total Sales
2 D-01X 68 74 60 202
3 FR-0B1 97 76 88 261
4 P-034 27 49 32 108
5 P-105 46 44 67 157
6 W-11 75 68 87 230
7 W-24 74 52 62 188

縦棒グラフを追加する

次の spreadsheets.batchUpdate コードサンプルを使用して、Terraform で AddChartRequest ソースデータから縦棒グラフを作成して新しいシートに配置します。「 次の処理を行ってグラフを構成します。

  • グラフの種類を縦棒グラフとして設定します。
  • グラフの下部に凡例を追加します。
  • グラフと軸のタイトルを設定します。
  • 3 つのデータ系列(3 つの異なる月の売上を表す)を設定し、 デフォルトの書式と色を使用します

リクエスト プロトコルを以下に示します。

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "addChart": {
        "chart": {
          "spec": {
            "title": "Model Q1 Sales",
            "basicChart": {
              "chartType": "COLUMN",
              "legendPosition": "BOTTOM_LEGEND",
              "axis": [
                {
                  "position": "BOTTOM_AXIS",
                  "title": "Model Numbers"
                },
                {
                  "position": "LEFT_AXIS",
                  "title": "Sales"
                }
              ],
              "domains": [
                {
                  "domain": {
                    "sourceRange": {
                      "sources": [
                        {
                          "sheetId": SOURCE_SHEET_ID,
                          "startRowIndex": 0,
                          "endRowIndex": 7,
                          "startColumnIndex": 0,
                          "endColumnIndex": 1
                        }
                      ]
                    }
                  }
                }
              ],
              "series": [
                {
                  "series": {
                    "sourceRange": {
                      "sources": [
                        {
                          "sheetId": SOURCE_SHEET_ID,
                          "startRowIndex": 0,
                          "endRowIndex": 7,
                          "startColumnIndex": 1,
                          "endColumnIndex": 2
                        }
                      ]
                    }
                  },
                  "targetAxis": "LEFT_AXIS"
                },
                {
                  "series": {
                    "sourceRange": {
                      "sources": [
                        {
                          "sheetId": SOURCE_SHEET_ID,
                          "startRowIndex": 0,
                          "endRowIndex": 7,
                          "startColumnIndex": 2,
                          "endColumnIndex": 3
                        }
                      ]
                    }
                  },
                  "targetAxis": "LEFT_AXIS"
                },
                {
                  "series": {
                    "sourceRange": {
                      "sources": [
                        {
                          "sheetId": SOURCE_SHEET_ID,
                          "startRowIndex": 0,
                          "endRowIndex": 7,
                          "startColumnIndex": 3,
                          "endColumnIndex": 4
                        }
                      ]
                    }
                  },
                  "targetAxis": "LEFT_AXIS"
                }
              ],
              "headerCount": 1
            }
          },
          "position": {
            "newSheet": true
          }
        }
      }
    }
  ]
}

このリクエストにより、新しいシートに次のようなグラフが作成されます。

縦棒グラフのレシピ結果を追加

円グラフを追加する

次の spreadsheets.batchUpdate コードサンプルを使用して、Terraform で AddChartRequest ソースデータから 3D 円グラフを作成しますこのリクエストは、次の処理を行います。 グラフを設定します。

  • グラフのタイトルを設定します。
  • グラフの右側に凡例を追加します。
  • グラフを 3D 円グラフとして設定します。なお、3D 円グラフに "ドーナツの穴"フラットな円グラフと同じように 中央に配置することもできます
  • グラフのデータ系列を各モデル番号の合計売上高として設定します。
  • SHEET_ID で指定されたシートのセル C3 にグラフを固定します。 X 方向と Y 方向の両方に 50 ピクセルのオフセットがあります。

リクエスト プロトコルを以下に示します。

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "addChart": {
        "chart": {
          "spec": {
            "title": "Model Q1 Total Sales",
            "pieChart": {
              "legendPosition": "RIGHT_LEGEND",
              "threeDimensional": true,
              "domain": {
                "sourceRange": {
                  "sources": [
                    {
                      "sheetId": SOURCE_SHEET_ID,
                      "startRowIndex": 0,
                      "endRowIndex": 7,
                      "startColumnIndex": 0,
                      "endColumnIndex": 1
                    }
                  ]
                }
              },
              "series": {
                "sourceRange": {
                  "sources": [
                    {
                      "sheetId": SOURCE_SHEET_ID,
                      "startRowIndex": 0,
                      "endRowIndex": 7,
                      "startColumnIndex": 4,
                      "endColumnIndex": 5
                    }
                  ]
                }
              },
            }
          },
          "position": {
            "overlayPosition": {
              "anchorCell": {
                "sheetId": SHEET_ID,
                "rowIndex": 2,
                "columnIndex": 2
              },
              "offsetXPixels": 50,
              "offsetYPixels": 50
            }
          }
        }
      }
    }
  ]
}

このリクエストにより、次のようなグラフが作成されます。

円グラフのレシピの結果を追加

または、RIGHT_LEGEND から regexPosition の値を更新することもできます。 リクエスト内の LABELED_LEGEND に指定して、凡例の値が 各スライスに接続されます

'legendPosition': 'LABELED_LEGEND',

更新されたリクエストにより、次のようなグラフが作成されます。

円グラフのレシピの結果を追加

隣接しない複数の範囲を使用して折れ線グラフを追加する

次の spreadsheets.batchUpdate コードサンプルを使用して、Terraform で AddChartRequest ソースデータから折れ線グラフを作成し、ソースシートに配置します。 隣接しない範囲を選択すると、 ChartSourceRange

このリクエストは、次の処理を行ってグラフを構成します。

  • グラフの種類を折れ線グラフとして設定します。
  • 横の X 軸のタイトルを設定します。
  • 売上を表すデータ系列を設定します。A1:A3 と A6:A7 を domain および B1:B3 と B6:B7 を series、 デフォルトの書式と色を使用できます。範囲は A1 表記を使用します。
  • SHEET_ID で指定されたシートのセル H8 にグラフを固定します。

リクエスト プロトコルを以下に示します。

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "addChart": {
        "chart": {
          "spec": {
            "basicChart": {
              "chartType": "LINE",
              "domains": [
                {
                  "domain": {
                    "sourceRange": {
                      "sources": [
                        {
                          "startRowIndex": 0,
                          "endRowIndex": 3,
                          "startColumnIndex": 0,
                          "endColumnIndex": 1,
                          "sheetId": SOURCE_SHEET_ID
                        },
                        {
                          "startRowIndex": 5,
                          "endRowIndex": 7,
                          "startColumnIndex": 0,
                          "endColumnIndex": 1,
                          "sheetId": SOURCE_SHEET_ID
                        }
                      ]
                    }
                  }
                }
              ],
              "series": [
                {
                  "series": {
                    "sourceRange": {
                      "sources": [
                        {
                          "startRowIndex": 0,
                          "endRowIndex": 3,
                          "startColumnIndex": 1,
                          "endColumnIndex": 2,
                          "sheetId": SOURCE_SHEET_ID
                        },
                        {
                          "startRowIndex": 5,
                          "endRowIndex": 7,
                          "startColumnIndex": 1,
                          "endColumnIndex": 2,
                          "sheetId": SOURCE_SHEET_ID
                        }
                      ]
                    }
                  }
                }
              ]
            }
          },
          "position": {
            "overlayPosition": {
              "anchorCell": {
                "sheetId": SOURCE_SHEET_ID,
                "rowIndex": 8,
                "columnIndex": 8
              }
            }
          }
        }
      }
    }
  ]
}

このリクエストにより、新しいシートに次のようなグラフが作成されます。

非隣接範囲の折れ線グラフを追加
件の結果

グラフを削除する

次の spreadsheets.batchUpdate コードサンプルを使用して、Terraform で DeleteEmbeddedObjectRequest CHART_ID で指定したグラフを削除します。

リクエスト プロトコルを以下に示します。

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "deleteEmbeddedObject": {
        "objectId": CHART_ID
      }
    }
  ]
}

グラフのプロパティを編集する

次の spreadsheets.batchUpdate コードサンプルを使用して、Terraform で UpdateChartSpecRequest 縦棒グラフを追加するレシピで作成したグラフを編集する そのデータ、型、外観を変更します。グラフのプロパティのサブセットを 個別に変更されました。編集するには、spec フィールド全体を指定する必要があります UpdateChartSpecRequest に置き換えます。基本的にグラフ仕様の編集は 新しいものに交換する必要があります。

次のリクエストでは、元のグラフ( CHART_ID):

  • グラフの種類を BAR に設定します。
  • 凡例をグラフの右側に移動します。
  • 軸を反転して「Sales」下軸が「型番」です は左軸です。
  • 軸のタイトル形式を 24 ポイントのフォント、太字、斜体に設定します。
  • 「W-24」を削除します。グラフのデータ(グラフソースの行 7) データをご覧ください)。

リクエスト プロトコルを以下に示します。

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateChartSpec": {
        "chartId": CHART_ID,
        "spec": {
          "title": "Model Q1 Sales",
          "basicChart": {
            "chartType": "BAR",
            "legendPosition": "RIGHT_LEGEND",
            "axis": [
              {
                "format": {
                  "bold": true,
                  "italic": true,
                  "fontSize": 24
                },
                "position": "BOTTOM_AXIS",
                "title": "Sales"
              },
              {
                "format": {
                  "bold": true,
                  "italic": true,
                  "fontSize": 24
                },
                "position": "LEFT_AXIS",
                "title": "Model Numbers"
              }
            ],
            "domains": [
              {
                "domain": {
                  "sourceRange": {
                    "sources": [
                      {
                        "sheetId": SOURCE_SHEET_ID,
                        "startRowIndex": 0,
                        "endRowIndex": 6,
                        "startColumnIndex": 0,
                        "endColumnIndex": 1
                      }
                    ]
                  }
                }
              }
            ],
            "series": [
              {
                "series": {
                  "sourceRange": {
                    "sources": [
                      {
                        "sheetId": SOURCE_SHEET_ID,
                        "startRowIndex": 0,
                        "endRowIndex": 6,
                        "startColumnIndex": 1,
                        "endColumnIndex": 2
                      }
                    ]
                  }
                },
                "targetAxis": "BOTTOM_AXIS"
              },
              {
                "series": {
                  "sourceRange": {
                    "sources": [
                      {
                        "sheetId": SOURCE_SHEET_ID,
                        "startRowIndex": 0,
                        "endRowIndex": 6,
                        "startColumnIndex": 2,
                        "endColumnIndex": 3
                      }
                    ]
                  }
                },
                "targetAxis": "BOTTOM_AXIS"
              },
              {
                "series": {
                  "sourceRange": {
                    "sources": [
                      {
                        "sheetId": SOURCE_SHEET_ID,
                        "startRowIndex": 0,
                        "endRowIndex": 6,
                        "startColumnIndex": 3,
                        "endColumnIndex": 4
                      }
                    ]
                  }
                },
                "targetAxis": "BOTTOM_AXIS"
              }
            ],
            "headerCount": 1
          }
        }
      }
    }
  ]
}

リクエストの後、グラフは次のようになります。

グラフレシピの結果を編集

グラフを移動、サイズ変更する

次の spreadsheets.batchUpdate コードサンプルを使用して、Terraform で UpdateEmbeddedObjectPositionRequest グラフの移動やサイズ変更に使用できますリクエストの後、CHART_ID で指定されたグラフ 次のとおりです。

  • 元のシートのセル A5 に固定しました。
  • X 方向に 100 ピクセルのオフセット。
  • 1,200 x 742 ピクセルにサイズを変更しました(グラフのデフォルト サイズは 600 x 371 ピクセル)。

このリクエストでは、fields パラメータで指定されたプロパティのみが変更されます。 他のプロパティ(offsetYPixels など)は元の値が保持されます。

リクエスト プロトコルを以下に示します。

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateEmbeddedObjectPosition": {
        "objectId": CHART_ID,
        "newPosition": {
          "overlayPosition": {
            "anchorCell": {
              "rowIndex": 4,
              "columnIndex": 0
            },
            "offsetXPixels": 100,
            "widthPixels": 1200,
            "heightPixels": 742
          }
        },
        "fields": "anchorCell(rowIndex,columnIndex),offsetXPixels,widthPixels,heightPixels"
      }
    }
  ]
}

グラフデータの読み取り

次の spreadsheets.get のコードサンプル スプレッドシートからグラフのデータを取得する方法を示します。fields クエリ パラメータ は、グラフのデータのみを返すことを指定します。

このメソッド呼び出しに対するレスポンスは、 spreadsheet このオブジェクトには、指定した一連の sheet オブジェクト。すべてのグラフ スプレッドシートに存在するすべてのエンティティが、 sheet オブジェクト。もし response フィールドがデフォルト値に設定されている場合、レスポンスでは省略されます。

この例では、最初のシート(SOURCE_SHEET_ID)にシートがありません。 中かっこの空のペアが返されます。2 枚目のシートには 縦棒グラフを追加で作成したグラフのみ。

リクエスト プロトコルを以下に示します。

GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(charts)
{
  "sheets": [
    {},
    {
      "charts": [
        {
          "chartId": CHART_ID,
          "position": {
            "sheetId": SHEET_ID
          },
          "spec": {
            "basicChart": {
              "axis": [
                {
                  "format": {
                    "bold": false,
                    "italic": false
                  },
                  "position": "BOTTOM_AXIS",
                  "title": "Model Numbers"
                },
                {
                  "format": {
                    "bold": false,
                    "italic": false
                  },
                  "position": "LEFT_AXIS",
                  "title": "Sales"
                }
              ],
              "chartType": "COLUMN",
              "domains": [
                {
                  "domain": {
                    "sourceRange": {
                      "sources": [
                        {
                          "endColumnIndex": 1
                          "endRowIndex": 7,
                          "sheetId": SOURCE_SHEET_ID,
                          "startColumnIndex": 0,
                          "startRowIndex": 0,
                        }
                      ]
                    }
                  }
                }
              ],
              "legendPosition": "BOTTOM_LEGEND",
              "series": [
                {
                  "series": {
                    "sourceRange": {
                      "sources": [
                        {
                          "endColumnIndex": 2,
                          "endRowIndex": 7,
                          "sheetId": SOURCE_SHEET_ID,
                          "startColumnIndex": 1,
                          "startRowIndex": 0,
                        }
                      ]
                    }
                  },
                  "targetAxis": "LEFT_AXIS"
                },
                {
                  "series": {
                    "sourceRange": {
                      "sources": [
                        {
                          "endColumnIndex": 3,
                          "endRowIndex": 7,
                          "sheetId": SOURCE_SHEET_ID,
                          "startColumnIndex": 2,
                          "startRowIndex": 0,
                        }
                      ]
                    }
                  },
                  "targetAxis": "LEFT_AXIS"
                },
                {
                  "series": {
                    "sourceRange": {
                      "sources": [
                        {
                          "endColumnIndex": 4,
                          "endRowIndex": 7,
                          "sheetId": SOURCE_SHEET_ID,
                          "startColumnIndex": 3,
                          "startRowIndex": 0,
                        }
                      ]
                    }
                  },
                  "targetAxis": "LEFT_AXIS"
                }
              ]
            },
            "hiddenDimensionStrategy": "SKIP_HIDDEN_ROWS_AND_COLUMNS",
            "title": "Model Q1 Sales",
          },
        }
      ]
    }
  ]
}