我正在按照示例代码创建谷歌电子表格和内部图表https://developers.google.com/sheets/api/samples/charts
我没有在 BasicChartSpec https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/charts#BasicChartSpec 或内部 https://developers.google.com/sheets 找到属性/api/reference/rest/v4/spreadsheets/charts#BasicChartSeries 了解如何启用错误栏。
我正在使用 python 创建电子表格。
API 尚不支持显示“错误栏”吗?感谢任何帮助。
谢谢你。
我相信您的目标如下。
现阶段,Sheets API 的基本图表似乎没有设置误差线的属性。所以,不幸的是,你的问题
Is showing "Error Bars" not yet supported from the API?
的答案是肯定的。
但是,幸运的是,当使用 Google Apps 脚本时,可以将误差线设置为基本图表。在此答案中,我想提出一种通过 Python 使用 Google Apps 脚本的解决方法。
Google Apps Script 和 Python 的示例脚本如下。
请准备一个 Google 电子表格并打开脚本编辑器。并且,请设置您的图表。
在此答案中,我使用了由您提供的 URL 中的请求正文创建的图表 https://developers.google.com/sheets/api/samples/charts .
请将以下示例脚本复制并粘贴到脚本编辑器。
if (!e) {
console.error("No event object");
return ContentService.createTextOutput("No event object");
}
let { spreadsheetId, sheetName, chartId } = e.parameter;
const sheet = SpreadsheetApp.openById(spreadsheetId).getSheetByName(sheetName);
let chart;
if (chartId) {
chart = sheet.getCharts().find(c => c.getChartId() == chartId)
} else {
chart = sheet.getCharts()[0];
chartId = chart.getChartId();
}
const chartObj = Sheets.Spreadsheets.get(spreadsheetId, { ranges: [sheetName], fields: "sheets(charts)" }).sheets[0].charts.find(c => c.chartId == chartId);
if (!chartObj) {
return ContentService.createTextOutput("No chart.");
}
const { series } = chartObj.spec.basicChart;
const containerInfo = chart.getContainerInfo();
const c = chart.modify();
if (containerInfo.getAnchorColumn() == 0 && containerInfo.getAnchorRow() == 0) {
c.setPosition(1, 1, 0, 0);
}
series.forEach((_, i) => c.setOption("series", { [i]: { errorBars: { errorType: "percent" } } }));
sheet.updateChart(c.build());
return ContentService.createTextOutput("Done.");
}
详细信息可以看官方文档。
请使用脚本编辑器进行设置。
https://script.google.com/macros/s/###/exec
。为了测试这一点,请使用以下 Python 脚本。请将您的 Web 应用程序 URL 设置为
webAppsUrl
。并且,请将您的电子表格 ID、工作表名称和图表 ID 设置为 params
。使用 chartId
时,将使用图表 ID 选择图表。不使用 chartId
时,将自动使用该表的第 1 个图表。
import requests
webAppsUrl = "https://script.google.com/macros/s/###/exec"
params = {
"spreadsheetId": "###", // Please set your Spreadsheet ID.
"sheetName": "Sheet1", // Please set your sheet name.
# "chartId": "###", // Please set your chart ID, if you want to use the chart ID.
}
res = requests.get(webAppsUrl, params=params)
print(res.text)
运行此脚本时,当正确部署上述 Web 应用程序时,错误栏将设置为图表,如下所示。
这是一个简单的示例脚本。所以,请根据您的实际情况进行修改。
当您修改Web Apps的Google Apps脚本时,请将部署修改为新版本。这样,修改后的脚本就会反映在Web Apps中。请注意这一点。
您可以在我的报告“重新部署 Web 应用程序而不更改新 IDE 的 Web 应用程序的 URL(作者:我)”中查看详细信息。