चार्ट

Google Sheets API की मदद से, स्प्रेडशीट में अपनी ज़रूरत के हिसाब से चार्ट बनाए और अपडेट किए जा सकते हैं. इस पेज पर दिए गए उदाहरणों से पता चलता है कि Sheets API की मदद से, चार्ट से जुड़ी कुछ सामान्य कार्रवाइयां कैसे की जा सकती हैं.

इन उदाहरणों को एचटीटीपी अनुरोधों के तौर पर दिखाया गया है, ताकि ये किसी भाषा पर आधारित न हों. Google API क्लाइंट लाइब्रेरी का इस्तेमाल करके, अलग-अलग भाषाओं में बैच अपडेट लागू करने का तरीका जानने के लिए, स्प्रेडशीट अपडेट करना लेख पढ़ें.

इन उदाहरणों में, प्लेसहोल्डर SPREADSHEET_ID और SHEET_ID

इससे पता चलता है कि आपको ये आईडी कहां देने हैं. स्प्रेडशीट के यूआरएल में स्प्रेडशीट आईडी देखा जा सकता है. spreadsheets.get तरीके का इस्तेमाल करके, शीट आईडी पाया जा सकता है. रेंज को A1 नोटेशन का इस्तेमाल करके तय किया जाता है. उदाहरण के लिए, रेंज Sheet1!A1:D5 है.

इसके अलावा, CHART_ID प्लेसहोल्डर से किसी चार्ट के आईडी का पता चलता है. Sheets API की मदद से चार्ट बनाते समय, इस आईडी को सेट किया जा सकता है. इसके अलावा, Sheets API को आपके लिए आईडी जनरेट करने की अनुमति भी दी जा सकती है. spreadsheets.get तरीके का इस्तेमाल करके, मौजूदा चार्ट के आईडी पाए जा सकते हैं.

आखिर में, प्लेसहोल्डर SOURCE_SHEET_ID से पता चलता है कि आपकी शीट में सोर्स डेटा मौजूद है. इन उदाहरणों में, यह टेबल चार्ट सोर्स डेटा में दी गई है.

चार्ट का सोर्स डेटा

इन उदाहरणों के लिए, मान लें कि इस्तेमाल की जा रही स्प्रेडशीट की पहली शीट ("Sheet1") में यह सोर्स डेटा मौजूद है. पहली लाइन में मौजूद स्ट्रिंग, अलग-अलग कॉलम के लिए लेबल होती हैं. अपनी स्प्रेडशीट में, दूसरी शीट से डेटा पढ़ने के उदाहरण देखने के लिए, A1 नोटेशन देखें.

A B C D E
1 मॉडल नंबर बिक्री - जनवरी बिक्री - फ़रवरी बिक्री - मार्च कुल बिक्री
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 कोड सैंपल में, AddChartRequest का इस्तेमाल करके, सोर्स डेटा से कॉलम चार्ट बनाने का तरीका दिखाया गया है. साथ ही, इसे नई शीट में रखा गया है. चार्ट को कॉन्फ़िगर करने के लिए, अनुरोध में यह काम किया जाता है:

  • चार्ट टाइप को कॉलम चार्ट के तौर पर सेट करता है.
  • चार्ट में सबसे नीचे एक लेजेंड जोड़ता है.
  • इस विकल्प का इस्तेमाल करके, चार्ट और ऐक्सिस के टाइटल सेट किए जाते हैं.
  • यह तीन डेटा सीरीज़ को कॉन्फ़िगर करता है. ये तीन अलग-अलग महीनों की बिक्री को दिखाती हैं. साथ ही, इनमें डिफ़ॉल्ट फ़ॉर्मैटिंग और रंगों का इस्तेमाल किया जाता है.

अनुरोध प्रोटोकॉल यहां दिखाया गया है.

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 कोड सैंपल में, सोर्स डेटा से 3D पाई चार्ट बनाने के लिए AddChartRequest का इस्तेमाल करने का तरीका बताया गया है. चार्ट को कॉन्फ़िगर करने के लिए, अनुरोध में ये काम किए जाते हैं:

  • इससे चार्ट का टाइटल सेट किया जाता है.
  • इससे चार्ट की दाईं ओर लेजेंड जोड़ा जाता है.
  • इस विकल्प का इस्तेमाल करके, चार्ट को 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
            }
          }
        }
      }
    }
  ]
}

इस अनुरोध से, इस तरह का चार्ट बनता है:

पाई चार्ट में रेसिपी का नतीजा जोड़ना

इसके अलावा, अनुरोध में legendPosition वैल्यू को RIGHT_LEGEND से LABELED_LEGEND पर अपडेट किया जा सकता है, ताकि लेजेंड वैल्यू को पाई चार्ट के स्लाइस से जोड़ा जा सके.

'legendPosition': 'LABELED_LEGEND',

अनुरोध अपडेट करने के बाद, इस तरह का चार्ट बनता है:

पाई चार्ट में रेसिपी का नतीजा जोड़ना

एक-दूसरे से जुड़ी हुई नहीं, बल्कि अलग-अलग रेंज का इस्तेमाल करके लाइन चार्ट जोड़ना

नीचे दिए गए spreadsheets.batchUpdate कोड सैंपल में, 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 कोड के उदाहरण में, CHART_ID से तय किए गए चार्ट को मिटाने के लिए DeleteEmbeddedObjectRequest का इस्तेमाल करने का तरीका दिखाया गया है.

अनुरोध प्रोटोकॉल यहां दिखाया गया है.

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

चार्ट की प्रॉपर्टी में बदलाव करना

यहां दिए गए spreadsheets.batchUpdate कोड के सैंपल में बताया गया है कि UpdateChartSpecRequest का इस्तेमाल करके, कॉलम चार्ट जोड़ें रेसिपी में बनाए गए चार्ट में कैसे बदलाव किया जा सकता है. साथ ही, इसके डेटा, टाइप, और दिखने के तरीके में बदलाव करने का तरीका भी बताया गया है. चार्ट की प्रॉपर्टी के सबसेट को अलग-अलग नहीं बदला जा सकता. बदलाव करने के लिए, आपको पूरे spec फ़ील्ड में UpdateChartSpecRequest की वैल्यू देनी होगी. चार्ट स्पेसिफ़िकेशन में बदलाव करने के लिए, उसे नए स्पेसिफ़िकेशन से बदलना होता है.

यहां दिया गया अनुरोध, ओरिजनल चार्ट (CHART_ID के तौर पर तय किया गया) को अपडेट करता है:

  • इस विकल्प से, चार्ट टाइप को BAR पर सेट किया जाता है.
  • इससे लेजेंड को चार्ट की दाईं ओर ले जाया जाता है.
  • इससे ऐक्सिस उलट जाते हैं. "Sales" नीचे वाले ऐक्सिस पर और "Model Numbers" बाएं ऐक्सिस पर दिखता है.
  • इस विकल्प से, ऐक्सिस के टाइटल का फ़ॉर्मैट सेट किया जाता है. जैसे, 24 पॉइंट का फ़ॉन्ट, बोल्ड, और इटैलिक.
  • इस फ़िल्टर से, चार्ट से "W-24" डेटा हट जाता है. यह चार्ट के सोर्स डेटा की सातवीं लाइन में मौजूद है.

अनुरोध प्रोटोकॉल यहां दिखाया गया है.

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 कोड सैंपल में, चार्ट को मूव करने और उसका साइज़ बदलने के लिए UpdateEmbeddedObjectPositionRequest का इस्तेमाल करने का तरीका बताया गया है. अनुरोध के बाद, CHART_ID में बताया गया चार्ट यह है:

  • इसे इसकी मूल शीट की सेल A5 में पिन किया गया है.
  • X दिशा में 100 पिक्सल का ऑफ़सेट.
  • इसका साइज़ बदलकर 1200 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 query पैरामीटर से यह तय होता है कि सिर्फ़ चार्ट का डेटा दिखाया जाए.

इस तरीके के कॉल का जवाब, spreadsheet ऑब्जेक्ट होता है. इसमें sheet ऑब्जेक्ट की कैटगरी होती है. किसी शीट पर मौजूद सभी चार्ट, sheet ऑब्जेक्ट में दिखाए जाते हैं. अगर किसी जवाब वाले फ़ील्ड को डिफ़ॉल्ट वैल्यू पर सेट किया जाता है, तो उसे जवाब में शामिल नहीं किया जाता.

इस उदाहरण में, पहली शीट (SOURCE_SHEET_ID) में कोई चार्ट नहीं है. इसलिए, घुमावदार ब्रैकेट का खाली जोड़ा दिखाया गया है. दूसरी शीट में, कॉलम चार्ट जोड़ें की मदद से बनाया गया चार्ट है. इसमें और कुछ नहीं है.

अनुरोध प्रोटोकॉल यहां दिखाया गया है.

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",
          },
        }
      ]
    }
  ]
}