问题描述
我使用Google示例https://developers.google.com/chart/interactive/docs/gallery/bubblechart用Python v3.7.8测试Google Spreadshhet API v4,以创建气泡图。
数据存储在我创建气泡图的Google云端硬盘的电子表格中。
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,'startColumnIndex': 2,'endColumnIndex': 3}]}},'groupIds':
{'sourceRange':
{'sources':
[{'sheetId': 909072886,'startColumnIndex': 3,'endColumnIndex': 4}]}},'bubbleLabels':
{'sourceRange':
{'sources':
[{'sheetId': 909072886,'startColumnIndex': 0,'endColumnIndex': 1}]}},'bubbleSizes':
{'sourceRange':
{'sources':
[{'sheetId': 909072886,'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
。修改请求正文后,它如下所示。
发件人:
'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,'startColumnIndex': 2,'endColumnIndex': 3,'groupIds': {'sourceRange': {'sources': [{
'sheetId': 909072886,'startColumnIndex': 3,'endColumnIndex': 4,'bubbleLabels': {'sourceRange': {'sources': [{
'sheetId': 909072886,'startColumnIndex': 0,'endColumnIndex': 1,'bubbleSizes': {'sourceRange': {'sources': [{
'sheetId': 909072886,'startColumnIndex': 4,'endColumnIndex': 5,'bubbleOpacity': 1.0,# 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()