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()
我应该得到以下信息:
但我明白了:没有显示气泡。备注:将鼠标悬停在(不可见的)气泡上,它会显示该国家/地区的所有正确数据(预期寿命、生育率、人口、正确颜色的区域)!
不要犹豫,支持我!提前谢谢你。
在这种情况下,我建议在请求正文中包含 bubbleMaxRadiusSize
和 bubbleMinRadiusSize
如下。当你的request body修改后,变成如下
发件人:
'bubbleOpacity': 1.0}},
收件人:
'bubbleOpacity': 1.0,
'bubbleMaxRadiusSize': 50,
'bubbleMinRadiusSize': 5
}},
- 在此修改中,
50
和5
分别用作bubbleMaxRadiusSize
和bubbleMinRadiusSize
的示例值。所以请根据您的实际情况修改这些值。
结果:
整个脚本:
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()
参考文献:
我使用 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()
我应该得到以下信息:
但我明白了:没有显示气泡。备注:将鼠标悬停在(不可见的)气泡上,它会显示该国家/地区的所有正确数据(预期寿命、生育率、人口、正确颜色的区域)!
不要犹豫,支持我!提前谢谢你。
在这种情况下,我建议在请求正文中包含 bubbleMaxRadiusSize
和 bubbleMinRadiusSize
如下。当你的request body修改后,变成如下
发件人:
'bubbleOpacity': 1.0}},
收件人:
'bubbleOpacity': 1.0,
'bubbleMaxRadiusSize': 50,
'bubbleMinRadiusSize': 5
}},
- 在此修改中,
50
和5
分别用作bubbleMaxRadiusSize
和bubbleMinRadiusSize
的示例值。所以请根据您的实际情况修改这些值。
结果:
整个脚本:
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()