如何通过Google Sheets API v4自定义饼图扇区颜色?
自定义Google Sheets饼图扇区颜色的实现方案
完全可以通过Google Sheets API v4实现自定义饼图扇区颜色的需求,你只需要在原有代码的pieChart.series节点下添加colorStyle数组,为每个扇区指定对应的颜色即可。
修改后的完整代码
body = { "requests": [ { "addChart": { "chart": { "spec": { "backgroundColorStyle": { "themeColor": "BACKGROUND" }, "pieChart": { "legendPosition": "LABELED_LEGEND", "pieHole": 0.7, "domain": { "sourceRange": { "sources": [ { "sheetId": 0, "startRowIndex": 0, "endRowIndex": last_row, "startColumnIndex": 0, "endColumnIndex": 1 } ] } }, "series": { "sourceRange": { "sources": [ { "sheetId": 0, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 3, "endColumnIndex": 4 } ] }, # 添加自定义颜色数组,顺序对应数据行的顺序 "colorStyle": [ # 绿色 {"rgbColor": {"red": 0.2, "green": 0.8, "blue": 0.2}}, # 紫色 {"rgbColor": {"red": 0.6, "green": 0.2, "blue": 0.8}}, # 黄色 {"rgbColor": {"red": 1.0, "green": 1.0, "blue": 0.0}}, # 橙色 {"rgbColor": {"red": 1.0, "green": 0.6, "blue": 0.0}} ] }, } }, "position": { "overlayPosition": { "anchorCell": { "sheetId": 0, "rowIndex": 1, "columnIndex": 5 } } } } } } ] } request = service.spreadsheets().batchUpdate(spreadsheetId=sheet_id, body=body) response = request.execute()
关键说明
colorStyle是一个数组,数组中每个元素对应饼图的一个扇区,顺序和你domain(分类列)、series(数值列)的数据行顺序完全一致- 颜色可以用
rgbColor指定具体的RGB值(取值范围0-1),也可以用themeColor引用表格主题内的颜色(比如"themeColor": "ACCENT1") - 确保
colorStyle数组的元素数量和你的数据行数匹配,避免出现颜色不对应或缺失的情况
内容的提问来源于stack exchange,提问作者DAB
相关产品推荐
相关产品推荐

