>但史蒂夫(Steve)是史蒂夫(Steve),他希望圖表具有互動性。不僅如此,他還希望每當他在電子表格中更改數據時都可以更新圖表。 >
>首先要求您的客戶將數據移至Google表(因為那是當今所有酷的人都在做的事情)。然後,我們可以輕鬆地實現他需要的功能 - 交互式JavaScript圖表和動態更新。
她的客戶同意(幸運的是!),珍妮和我編碼了其餘的解決方案。但是如何?好吧,這就是本教程會教您的。>
我將本教程分為五個易於遵循的步驟:從Google表中導出數據
>通過ajax
從Google表中獲取JSON
重組數據使用FusionCharts創建圖表。
自定義圖表
。然後用一些數據填充您新創建的工作表。我從這裡拿了我的:2015年世界上收入最高的演員。
>如您所見,左列包含我們圖表的標籤,右一個值與這些標籤相對應。對於那些跟隨家裡的人,您可以在此處獲取此紙的副本(轉到
> file>>>製作副本)。 > Google表中可用的數據可以導出到JSON,XML等多種格式,並且一旦導出到任何這些格式,就可以通過網絡輕鬆訪問。
要將文檔打開到網絡,您需要對文檔設置進行以下更改:>將文檔的共享設置為Web上的
> public
或>我們將使用jQuery的get()方法從Google表中獲取數據。您可以從cdn中包含jQuery,如下所示:
>上面的jQuery代碼向Google表格URL提出了AJAX請求,並且在成功獲取數據後,它將稱為成功函數。此函數可將從服務器返回到控制台的數據記錄。我鼓勵您運行此腳本並花點時間檢查返回的內容。
重組數據<span><span><span><script</span> type<span>="text/javascript"</span> src<span>="https://code.jquery.com/jquery-1.12.0.min.js"</span>></span><span><span></script</span>></span> </span>
>需要對Google表的JSON數據進行重組,以匹配我們可視化庫接受的數據格式。對於本教程,我們將使用FusionCharts。 FusionCharts接受JSON數據作為包含標籤和值密鑰的對像數組。這就是它的樣子:
<span>var spreadsheetId = "1Aoz_GcPYoEIMMNd1N_meYNOp8TJ0fCXpp1AoUhCpwZo", </span> url <span>= "https://spreadsheets.google.com/feeds/list/" + </span> spreadsheetId <span>+ </span> <span>"/od6/public/basic?alt=json"; </span> $<span>.get({ </span> <span>url: url, </span> <span>success: function(response) { </span> <span>console.log(response); </span> <span>} </span><span>}); </span>為了實現這一目標,我們需要在我們之前定義的jQuery獲取函數的成功回調中運行以下代碼。
>我們在這裡做的是在響應中存在的每個Google Sheet數據對像上迭代。輸入並從中提取標籤和值。然後,我們將它們存儲在一個新的數組parseddata中,該圖表將由圖表使用。
>標籤可在標題中可用。 $ t鍵,該值可在內容中可用。數據對象的$ t鍵。該值雖然包含表列名稱,這不是必需的,因此我們將其剝離。可視化不需要Google表中的其餘數據。
> parseddata陣列現在包含一種格式的數據,該格式將由FusionCharts理解,我們可以繼續創建可視化。>步驟3:創建圖表
創建
>實際創建並渲染基本的水平條形圖到#圖表符合者中,我們將在成功回調中添加以下代碼:
<span><span><span><script</span> type<span>="text/javascript"</span> src<span>="https://code.jquery.com/jquery-1.12.0.min.js"</span>></span><span><span></script</span>></span> </span>>
>讓我們看一下為圖表定義的一些配置選項:
<span>var spreadsheetId = "1Aoz_GcPYoEIMMNd1N_meYNOp8TJ0fCXpp1AoUhCpwZo", </span> url <span>= "https://spreadsheets.google.com/feeds/list/" + </span> spreadsheetId <span>+ </span> <span>"/od6/public/basic?alt=json"; </span> $<span>.get({ </span> <span>url: url, </span> <span>success: function(response) { </span> <span>console.log(response); </span> <span>} </span><span>}); </span>
>類型:定義我們要繪製的圖表類型 - 在此示例中bar2d。
><span>[{ </span> <span>"label": "Robert Downey Jr.", </span> <span>"value": "80" </span><span>} </span><span>...] </span>高:圖表的高度以像素為單位。
寬度:圖表的寬度。
>
以下是相同的圖表,可以定制出更多的外觀,哎呀,吸引人。>請參閱codepen上的sitepoint(@sitepoint)的筆JavaScript圖表(2)
結論使用Google Sheets的數據在交互式JavaScript圖表上經常詢問問題(FAQ)
我可以在我的JavaScript圖表中使用Google表外的其他數據源嗎? >
是的,除了Google表外,您還可以使用其他數據源用於JavaScript圖表。大多數圖表庫,包括Chart.js,HighCharts和Google圖表,都可以接受各種格式的數據,包括JSON,CSV和XML。您可以從各種來源獲取這些數據,包括數據庫,API和本地文件。但是,使用Google表作為數據源具有多個優點,包括簡單的設置,實時更新以及共享和協作數據的能力。>通過Google Sheets的數據實時更新您的JavaScript圖表,您需要設置一個投票機制。這涉及定期從Google表中獲取數據並使用新數據更新圖表。您可以使用JavaScript的setInterval函數來執行此操作,該功能允許您在指定的間隔中執行功能。在該功能中,您將從Google表中獲取數據,將其解析為您的圖表庫可以理解的格式,然後使用新數據更新圖表。
如何自定義JavaScript圖表的外觀? >
>您可以使用圖表庫提供的選項自定義JavaScript圖表的外觀。大多數圖表庫,包括Chart.js,HighCharts和Google圖表,允許您自定義圖表的各個方面,包括顏色,字體,標籤和工具提示。您還可以添加交互式功能,例如縮放和平移以及動畫。>您可以通過最小化您從Google表格中獲取的數據量,優化JavaScript代碼並使用性能來優化JavaScript圖表的性能,並使用性能圖表庫的功能。獲取大量數據可以減慢圖表的速度,因此請嘗試獲取所需的數據。您還可以通過避免不必要的計算並使用有效的算法來優化JavaScript代碼。大多數圖表庫,包括Chart.js,HighCharts和Google圖表,還提供性能功能,例如懶惰加載和硬件加速。
以上是使用Google表的數據進行交互式JavaScript圖表的詳細內容。更多資訊請關注PHP中文網其他相關文章!