- 开始使用
- 使用 API
- 问题排查
- Google Visualization API 政策
- 在社区中保持活跃
开始提交
- 什么是 Google 可视化 API?
- 借助 Google Visualization API,您可以针对结构化数据创建图表和报告应用,并协助将这些应用直接集成到您的网站中。
- 我可以使用可视化 API 执行哪些操作?
- 借助 Google Visualization API,您可以访问在浏览器中本地创建的结构化数据,或者以简单的表格格式从受支持的数据源检索到的结构化数据。您还可以将自己的数据源实现为可视化 API 数据源,并启用任何符合可视化条件的可视化和/或应用访问您的数据。该格式适合报告、分析或图表应用使用。因此,您可以直观呈现数据和/或为应用添加新功能,例如 Google 电子表格。
- 在哪里可以找到可视化 API 的文档?
- 您可以在 https://developers.google.com/chart/interactive/docs 上找到开发者指南和所有其他相关文档。
- 如何创建新图表?
- 最好的入门方法是阅读简介和快速入门部分。
- 什么是数据源网址?
- 数据源网址是可视化 API 数据源的唯一网址标识符。数据源网址可能还包含图表查询语言参数。在这种情况下,系统会在提取数据之前对数据源执行查询(例如排序、分组等)。
- 在哪里可以找到使用可视化 API 的图表应用程序的示例代码?
- 您可以在可视化 API 示例代码文档中找到示例代码。
- Flash 应用程序能否访问可视化 API?
- 当然可以。 但是可视化 API 使用的是 JavaScript API,但有一些库使 Flash 应用能够连接 JavaScript 代码。您可以在 http://code.google.com/p/swfobject 中找到可能对您有用的此类库。 有关影响 Flash 的一些开发问题,请参见下文。
- 如何实现数据源?
- 请阅读使用和创建图表的部分,了解图表的工作原理,然后阅读实现数据源,了解如何创建数据源。如果使用 Java,您也可以利用 Google 图表数据源 Java 库快速上手。
- 我能否从 Java 应用访问图表?
- 可以。借助适用于 Google Web Toolkit (GWT) 的 Google 可视化库,您可以通过使用 GWT 编译器编译的 Java 代码访问与 API 兼容的可视化效果,并使用 GWT 编译器在 Java 中编写与可视化 API 兼容的可视化效果。候选版本库还支持可视化 API 事件模型。
- 我能否从使用 Google Web Toolkit (GWT) 编译器编写的应用中访问图表?
- 可以。借助适用于 Google Web Toolkit (GWT) 的 Google 可视化库,您可以通过使用 GWT 编译器编译的 Java 代码访问与 API 兼容的可视化效果,并使用 GWT 编译器在 Java 中编写与可视化 API 兼容的可视化效果。候选版本库还支持可视化 API 事件模型。
- 我还有其他问题/疑问,应该与谁联系以获取更多信息?
- 请将您的问题发布到 Google Visualization API 论坛中,以获取可视化开发者社区的帮助。Google 可视化团队也会参与该小组解答问题。
使用 API
- Google 图表 API 和 Google 可视化 API 之间有什么区别?
-
Chart API 提供了一种创建各种图片图表的简单方法,只需将包含数据和图表配置选项的格式化网址发送到 Google 服务器,即可完成上述操作。Chart API 包含一组封闭的图表,其中包含各种选项。Chart API 数据集不得超过网址的大小(约为 2K)。
可视化 API 提供了一种通过网络连接图表和数据源并发布它们的方法:
-
- 可视化 API 提供了一个用于访问图表的 JavaScript API。
- 它的图表库包含 Google 创建的图表,同时也可供任何第三方创建他们自己的与可视化 API 兼容的可视化。
- 可视化 API 图表可以是浏览器能够呈现的任何内容。这包括图片、JavaScript、矢量图形、Flash 等。
- 大量的 Chart API 图表都可以通过可视化 API 进行访问,但它们的某些配置选项可能无法使用。
- 该 API 还提供了一个有备案的传输协议,可供任何人向任何 API 可视化工具公开其数据源。
- 该 API 有一个定义的事件模型,允许图表抛出和接收事件,从而与其托管网页和/或网页上的其他图表进行通信。
- 可以使用可视化 API 访问哪些数据源?
- 使用 Visualization API,您可以通过创建该 API 的标准 DataTable 格式,从浏览器本地访问数据,或者访问任何支持该 API 的数据源。知名应用已经支持该 API,包括 Google 电子表格和其 Force.com 开发者平台上的 Salesforce.com。您也可以将自己的数据作为图表数据源来实现。
- 我的应用要求接收的数据采用特定格式。如何处理异常?
-
您可以使用
google.visualization.DataTable
类的getNumberOfColumns()
和getColumnType()
方法测试获取的数据是否与预期相符,并在出现不匹配时发出错误消息。 - 在我的网站中嵌入图表是否安全?
- 直接在您的网站上运行第三方代码会带来固有风险。 Google 对应用性能、质量、安全性或内容不作任何承诺或保证。 不符合 Google Visualization API 服务条款的图表应用可能会从模板库中移除。
- 我可以离线使用图表吗?
- 用户的计算机必须能够访问 https://www.gstatic.com/charts/loader.js,才能使用 Google 图表的互动功能。
这是因为,在您使用页面所需的可视化库之前,系统会动态加载这些库。用于加载相应库的代码是所含脚本的一部分,会在您调用
google.charts.load()
方法时调用。 我们的服务条款不允许您下载google.charts.load
或google.visualization
代码以供离线使用。 - 我可以在本地或内网上下载并托管图表代码吗?
- 抱歉,我们的服务条款不允许您下载、保存或托管
google.charts.load
或google.visualization
代码。 但是,如果您不需要 Google 图表的交互性,可以对图表进行截图,然后根据需要使用它们。
问题排查
- 为什么我的图表没有显示?
-
首先,检查您的 JavaScript 控制台。在 Chrome 中,您可以通过以下方式访问 JavaScript 控制台:Chrome -> 查看 -> 开发者 -> JavaScript 控制台,或 Chrome -> 工具 -> JavaScript 控制台。所有现代浏览器都有 JavaScript 控制台;您可能需要在包含“高级”或“开发者工具”等名称的菜单上四处移动,查找它们。
希望控制台能立即帮助您解决问题。不过,有时很难将控制台消息转化为根本原因。以下是一些常见的误区:
- 您可能未正确使用 Google 加载器。
- 仅加载 Chars/loader.js 一次。
无论网页上有多少图表,您都应该有且仅有一个如下所示的调用:
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> // Do this ONCE.
。该调用可以在网页的标头或正文中,具体取决于您希望加载的时间。 - 理想情况下,只需调用
google.charts.load
一次,其中包含网页所需的所有软件包。<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script> google.charts.load("current", {packages: ["corechart", "timeline"]}); google.charts.setOnLoadCallback(drawBarChart1); function drawBarChart1() { ... var barChart1 = new google.visualization.BarChart(document.getElementById('chart1')); ... } google.charts.setOnLoadCallback(drawBarChart2); function drawBarChart2() { ... var barChart2 = new google.visualization.BarChart(document.getElementById('chart2')); ... } google.charts.setOnLoadCallback(drawTimeline); function drawTimeline() { ... var timeline = new google.visualization.Timeline(document.getElementById('chart3')); ... } </script> <div id="chart1"></div> ... <div id="chart2"></div> ... <div id="chart3"></div>
- 每个图表都应具有唯一的元素 ID(例如,
chart1
、chart2
)。 - 查找拼写错误。切记 JavaScript 是一种区分大小写的语言。
如果问题依然存在,请搜索 Google Visualization API 论坛,看看是否有人遇到过类似问题。如果您找不到可以解答您问题的帖子,请将您的问题发布到群组,并附上演示问题的网页的链接。如果可能,请包含 jsfiddle。
- 为什么我的月份和天数是相差一日的?
- Google 图表使用的 JavaScript 使用从零开始编制索引。一个月的第一天是 0,月份的范围从 0(1 月)到 11(12 月)。如果您的代码假定索引编号为 1,请将数据减 1,然后再将数据放入 JavaScript 日期对象中。
- 为什么我的图表在某些浏览器(而非全部浏览器)中都能正常工作?
- 建议您访问 caniuse.com 查看关于浏览器不兼容性的大量信息。使用 Google 图表时,Internet Explorer 8 及更低版本有时会出现问题,原因有两个:
- IE8 不支持 SVG,因此图表会切换到 VML,而 VML 的限制较为有限。
- IE8 的 JavaScript 不允许在列表中以逗号结尾。
- 为什么基于 Flash 的图表在测试时不显示?
- 由于 Flash 安全设置的限制,当从浏览器的文件位置(如 file:///c:/webhost/myhost/myviz.html)而不是网络服务器网址(如 http://www.myhost.com/myviz.html)访问时,基于 Flash 的图表可能无法正常运行。这通常只是测试问题;当您从 http:// 地址访问图表时,不会出现此问题。您可以按照 Macromedia 网站上的说明来解决此问题。一般来说,我们建议尽可能避免开发 Flash。
Google 可视化计划政策
- 什么是 Google 可视化计划政策?
-
根据服务条款的规定,我们可能会拒绝包含和显示违反我们计划政策的内容,具体做法是显示或链接到以下内容:
- 非法内容。
- 侵犯个人隐私。
- 色情或淫秽内容。
- 干扰或危害用户的计算机或托管网页的功能的内容(如恶意代码)。
- 宣扬仇恨或宣扬暴力。
- 侵犯版权。有关详情,请参阅我们的数字千年版权法案 (DMCA) 政策。
- 侵犯商标权。
- 冒充第三方。
如果开发者会创建用于收集数据的图表,则同意维护并链接到符合法律规范的隐私权政策。此外,我们要求开发者确保其图表是安全的,并且只要应用位于图表目录中,他们就可以对其进行维护。
这些政策可能会不时修订,恕不另行通知。
- Google 可视化 API 是否可以用于商业用途?
- 可以。如需查看细则,请参阅 Google Visualization API 服务条款。
- 我可以使用 Google Visualization API 创建客户端软件吗?
- 目前,我们不允许开发者使用 Visualization API 来创建客户端软件。您只能通过提供的接口使用 Visualization API。如需查看细则,请参阅 Google Visualization API 服务条款。
- Google 是否会记录我所有的图表数据?
- HTTP 请求中包含的图表数据会在临时日志中保存最多两周,用于内部测试和调试。当然,您应该了解,如果您的图表出现在公共网页上的图片标记中,则该图表可能会被抓取。
- 违反计划政策。
- 违反这些计划政策可能会导致您的图表被停用或移除、被列入禁止上传后续图表的黑名单、您的 Google 账号被终止和/或删除您的所有图表。