常見問題

開始提交

什麼是 Google Visualization API?
Google Visualization API 可讓您使用結構化資料製作圖表和報表應用程式,並協助您直接將圖表整合至網站。
我可以如何運用 Visualization API?
透過 Google Visualization API,您可以存取結構化資料 (在本機瀏覽器中建立),或是從支援的資料來源擷取並以簡易的表格格式擷取。您也可以將自己的資料來源實作為 Visualization API 資料來源,並啟用任何符合圖表的視覺化呈現和/或應用程式來存取資料。格式可以用於報表、分析或圖表應用程式。如此一來,您就能將資料視覺化,並/或為應用程式 (例如 Google 試算表) 新增功能。
哪裡可以找到 Visualization API 說明文件?
如需開發人員指南和所有其他相關說明文件,請前往 https://developers.google.com/chart/interactive/docs。
如何建立新圖表?
如要快速上手,最好的方法就是參閱簡介和快速入門導覽課程章節。
什麼是資料來源網址?
「資料來源網址」是 Visualization API 資料來源的專屬網址 ID。資料來源網址可能也會包含圖表 查詢語言參數。在此情況下,系統會在擷取資料之前對資料來源執行查詢 (例如排序、分組等)。
哪裡可以找到使用 Visualization API 的圖表應用程式程式碼範例?
您可以在 Visualization API 程式碼範例說明文件中找到程式碼範例。
Flash 應用程式可以存取 Visualization API 嗎?
當然可以! Visualization API 使用 JavaScript API,但有些程式庫可讓 Flash 應用程式與 JavaScript 程式碼連線。您可以在 http://code.google.com/p/swfobject 找到實用的程式庫。 如要瞭解部分影響 Flash 的開發問題,請參閱下文。
如何導入資料來源?
請參閱「使用及建立」一節,瞭解圖表的運作方式,然後參閱「實作資料來源」一文,瞭解如何建立資料來源。如果您使用 Java,也可以使用 Google Chart Data Source Java 程式庫快速開始使用。
我可以從 Java 應用程式存取圖表嗎?
可以。有了 Google Web Toolkit (GWT) 的 Google 視覺化程式庫,您就可以從以 GWT 編譯器編譯的 Java 程式碼存取符合 API 規範的視覺化效果,並使用 GWT 編譯器以 Java 編寫與 Visualization API 相容的視覺化內容。發布的候選程式庫也支援 Visualization API 事件模型。
我可以透過使用 Google Web Toolkit (GWT) 編譯器所編寫的應用程式存取圖表嗎?
可以。有了 Google Web Toolkit (GWT) 的 Google 視覺化程式庫,您就可以從以 GWT 編譯器編譯的 Java 程式碼存取符合 API 規範的視覺化效果,並使用 GWT 編譯器以 Java 編寫與 Visualization API 相容的視覺化內容。發布的候選程式庫也支援 Visualization API 事件模型。
我有其他問題/問題要透過誰聯絡來取得更多資訊?
請將您的問題張貼在 Google Visualization API 討論群組,以尋求圖表開發人員社群的協助。「Google 圖表」團隊也會參與這個群組,並回答問題。

使用 API

Google Chart API 與 Google Visualization API 有何不同?

Chart API 可讓您輕鬆建立各種圖片圖表,只要將包含資料和圖表設定選項的格式化網址傳送給 Google 伺服器即可。Chart API 包含一組封閉的圖表,有多種選項可供選擇。Chart API 資料集有網址的大小限制 (約為 2,000 個)。

Visualization API 可讓您在網路上連結圖表和資料來源,並發布圖表:

  • Visualization API 提供存取圖表的 JavaScript API。
  • 它的圖表庫包含 Google 建立的圖表,但也可以開放任何第三方自行製作符合 Visualization API 的圖表。
  • 視覺化 API 圖表和任何可由瀏覽器轉譯的圖表皆可。包括圖片、JavaScript、向量圖形、Flash 等。
  • 您可透過 Visualization API 存取大量的 Chart API 圖表,但某些設定選項可能無法使用。
  • 此 API 亦提供記載的傳輸通訊協定,以及讓所有人向任何 API 視覺化呈現資料來源的管道。
  • 這個 API 包含定義的事件模型,可讓圖表擲回及接收事件,進而與其代管頁面和/或其他頁面上的其他圖表通訊。
我可以透過 Visualization 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 中,您可以透過 Chrome ->「檢視」->「開發人員」->「JavaScript 控制台」進入 JavaScript 控制台,或前往 Chrome ->「工具」>「JavaScript 控制台」。所有新式瀏覽器都有 JavaScript 控制台;您可能需要切換名稱為「進階」或「開發人員工具」的選單,才能找到這項服務。

希望控制台能立即協助您解決問題。然而,將主控台訊息轉譯成根本原因並不容易。以下列舉一些常見的陷阱:

  • 您可能未正確使用 Google 載入器。
    • 請僅載入一次 chart/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 月)。如果程式碼假定從單一位置建立索引,請先減去其中一個,再將資料放入 JavaScript 日期物件。
為什麼我的圖表只適用於部分瀏覽器?
建議您使用 caniuse.com 來深入瞭解瀏覽器不相容情形。使用 Google 圖表時,Internet Explorer 8 以下版本有時會發生問題,原因如下:
  • IE8 不支援 SVG,因此圖表無法轉移至 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 Visualization API 可以用於商業用途嗎?
    可以。如需細則,請參閱 Google Visualization API 的《服務條款》。
    我可以使用 Google Visualization API 建立用戶端軟體嗎?
    我們目前不允許開發人員使用 Visualization API 建立用戶端軟體。您只能透過提供的介面使用 Visualization API。如需細則,請參閱《Google Visualization API 服務條款》。
    Google 會記錄我所有的圖表資料嗎?
    HTTP 要求中包含的圖表資料會儲存在臨時記錄中,為期不會超過兩週,供內部測試及偵錯之用。當然,您也應瞭解,如果圖表出現在公開網頁上的圖片標記中,就可以檢索該圖表。
    違反計畫政策。
    違反這些計畫政策可能會導致您停用或移除圖表、禁止上傳圖表、終止您的 Google 帳戶,以及/或刪除您的所有圖表。

    積極參與社群活動

    如何與其他人分享我的圖表應用程式?
    首先,將圖表放在圖表庫中。您也可以重新連結至您的網站,並視需要提供原始碼。 參與我們的討論群組,取得社群的意見回饋。
    圖表庫會列出使用 Visualization API 的應用程式。視覺化功能開發人員社群可在中央位置分享圖表應用程式。如要將圖表申請提交至範本庫,請在線上申請。
    如何宣傳圖表資料來源?
    在視覺化群組中發布實作成果。如果收到的話,我們甚至會親自提及。