Python Google 电子表格 API 气泡图未正确显示

Python Google Spreadsheet API Bubble Chart not properly displayed

我使用 google 示例 https://developers.google.com/chart/interactive/docs/gallery/bubblechart 测试 Google Spreadshhet API v4 和 Python v3.7.8 创建气泡图。

数据存储在我创建气泡图的 google 驱动器中的电子表格中。

气泡图已创建,但气泡不是 visible/displayed。以下代码:

from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request

...

body = {'requests': 
        [{'addChart': 
          {'chart': 
           {'spec': 
            {'title': 'Correlation between life expectancy, fertility rate and population of some world countries (2010)', 
             'titleTextPosition': 
             {'horizontalAlignment': 'CENTER'}, 
             'bubbleChart': 
             {'legendPosition': 'RIGHT_LEGEND',
              'domain': 
              {'sourceRange': 
               {'sources': 
                [{'sheetId': 909072886, 
                  'startRowIndex': 17, 
                  'endRowIndex': 27, 
                  'startColumnIndex': 1, 
                  'endColumnIndex': 2}]}}, 
              'series': 
              {'sourceRange': 
               {'sources': 
                [{'sheetId': 909072886, 
                  'startRowIndex': 17, 
                  'endRowIndex': 27, 
                  'startColumnIndex': 2, 
                  'endColumnIndex': 3}]}}, 
              'groupIds': 
              {'sourceRange': 
               {'sources': 
                [{'sheetId': 909072886, 
                 'startRowIndex': 17, 
                 'endRowIndex': 27, 
                 'startColumnIndex': 3, 
                 'endColumnIndex': 4}]}}, 
              'bubbleLabels': 
              {'sourceRange': 
               {'sources': 
                [{'sheetId': 909072886, 
                  'startRowIndex': 17, 
                  'endRowIndex': 27, 
                  'startColumnIndex': 0, 
                  'endColumnIndex': 1}]}}, 
              'bubbleSizes': 
              {'sourceRange': 
               {'sources': 
                [{'sheetId': 909072886, 
                  'startRowIndex': 17, 
                  'endRowIndex': 27, 
                  'startColumnIndex': 4, 
                  'endColumnIndex': 5}]}}, 
              'bubbleOpacity': 1.0}}, 
            'position': 
            {'overlayPosition': 
             {'anchorCell': 
              {'sheetId': 909072886, 
               'rowIndex': 61, 
               'columnIndex': 6}, 
               'offsetXPixels': 0, 
               'offsetYPixels': 0, 
               'widthPixels': 600, 
               'heightPixels': 371
             }
            }
           }
          }
         }
        ]
       }

response = service.spreadsheets().batchUpdate(spreadsheetId=file_id, body=body).execute()

我应该得到以下信息:

但我明白了:没有显示气泡。备注:将鼠标悬停在(不可见的)气泡上,它会显示该国家/地区的所有正确数据(预期寿命、生育率、人口、正确颜色的区域)!

不要犹豫,支持我!提前谢谢你。

在这种情况下,我建议在请求正文中包含 bubbleMaxRadiusSizebubbleMinRadiusSize 如下。当你的request body修改后,变成如下

发件人:

'bubbleOpacity': 1.0}},

收件人:

'bubbleOpacity': 1.0,
'bubbleMaxRadiusSize': 50,
'bubbleMinRadiusSize': 5
}},
  • 在此修改中,505分别用作bubbleMaxRadiusSizebubbleMinRadiusSize的示例值。所以请根据您的实际情况修改这些值。

结果:

整个脚本:

body = {'requests': [{'addChart': {'chart': {'spec': {'title': 'Correlation between life expectancy, fertility rate and population of some world countries (2010)', 'titleTextPosition': {'horizontalAlignment': 'CENTER'},
     'bubbleChart': {
    'legendPosition': 'RIGHT_LEGEND',
    'domain': {'sourceRange': {'sources': [{
        'sheetId': 909072886,
        'startRowIndex': 17,
        'endRowIndex': 27,
        'startColumnIndex': 1,
        'endColumnIndex': 2,
        }]}},
    'series': {'sourceRange': {'sources': [{
        'sheetId': 909072886,
        'startRowIndex': 17,
        'endRowIndex': 27,
        'startColumnIndex': 2,
        'endColumnIndex': 3,
        }]}},
    'groupIds': {'sourceRange': {'sources': [{
        'sheetId': 909072886,
        'startRowIndex': 17,
        'endRowIndex': 27,
        'startColumnIndex': 3,
        'endColumnIndex': 4,
        }]}},
    'bubbleLabels': {'sourceRange': {'sources': [{
        'sheetId': 909072886,
        'startRowIndex': 17,
        'endRowIndex': 27,
        'startColumnIndex': 0,
        'endColumnIndex': 1,
        }]}},
    'bubbleSizes': {'sourceRange': {'sources': [{
        'sheetId': 909072886,
        'startRowIndex': 17,
        'endRowIndex': 27,
        'startColumnIndex': 4,
        'endColumnIndex': 5,
        }]}},
    'bubbleOpacity': 1.0,
    'bubbleMaxRadiusSize': 50,  # Added
    'bubbleMinRadiusSize': 5,  # Added
    }}, 'position': {'overlayPosition': {
    'anchorCell': {'sheetId': 909072886, 'rowIndex': 61, 'columnIndex': 6},
    'offsetXPixels': 0,
    'offsetYPixels': 0,
    'widthPixels': 600,
    'heightPixels': 371,
    }}}}}]}

response = service.spreadsheets().batchUpdate(spreadsheetId=file_id, body=body).execute()

参考文献: