繪製圖表
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
<html>
<head>
<!--Load the AJAX API-->
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
// Load the Visualization API and the piechart package.
google.charts.load('current', {'packages':['corechart']});
// Set a callback to run when the Google Visualization API is loaded.
google.charts.setOnLoadCallback(drawChart);
// Callback that creates and populates a data table,
// instantiates the pie chart, passes in the data and
// draws it.
function drawChart() {
// Create the data table.
var data = new google.visualization.DataTable();
data.addColumn('string', 'Topping');
data.addColumn('number', 'Slices');
data.addRows([
['Mushrooms', 3],
['Onions', 1],
['Olives', 1],
['Zucchini', 1],
['Pepperoni', 2]
]);
// Set chart options
var options = {'title':'How Much Pizza I Ate Last Night',
'width':400,
'height':300};
// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
</head>
<body>
//Div that will hold the pie chart
<div id="chart_div" style="width:400; height:300"></div>
</body>
</html>
最後一個步驟是繪製圖表。首先,您必須先將要使用的圖表類別例項執行個體化,然後對該類別呼叫 draw()
。
將圖表執行個體化
每種圖表類型是以不同類別為基礎,請參閱圖表說明文件。舉例來說,圓餅圖是根據 google.visualization.PieChart
類別、長條圖依據 google.visualization.BarChart
類別,以此類推。您在本教學課程開始時載入的核心圖套件會包含圓餅圖和長條圖。不過,如果您想在網頁上使用樹狀圖或地理圖,就必須另外載入「樹狀圖」或「地理圖」套件。
Google 圖表建構函式使用單一參數:要在其中繪製視覺化圖表的 DOM 元素參照。
var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
繪製圖表
準備好資料和選項後,您就可以開始繪製圖表。
網頁必須包含 HTML 元素 (通常是 <div>
),才能容納圖表。
您必須將此元素的參照傳遞至圖表,因此為其指派 ID,以便使用 document.getElementById()
擷取參照。繪製這個元素時,圖表中的任何內容都會替換為圖表。請考慮是否明確調整這個 <div>
元素的大小,但現階段請先在 <div>
HTML 中指定圖表大小。
每張圖表都支援採用兩個值的 draw()
方法:保留資料的 DataTable
(或 DataView
) 物件,以及選用的圖表選項物件。選項物件並非必要,您可以忽略該物件,或傳入空值,使用圖表的預設選項。
呼叫 draw()
後,系統就會在頁面上繪製圖表。每次變更資料或選項並更新圖表時,都應呼叫 draw()
方法。
draw()
方法並非同步執行:也就是說,此方法會立即傳回,但可能無法立即使用所傳回的執行個體。在多數情況下,沒有問題,系統最終會繪製圖表。不過,如要在呼叫 draw()
後設定或擷取圖表中的值,您必須等待它擲回就緒事件,表示事件已填入。我們會在下一頁說明如何監聽事件。
疑難排解
如果圖表無法在網頁上繪製,以下幾種方法也許能幫您解決問題:
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2024-07-10 (世界標準時間)。
[null,null,["上次更新時間:2024-07-10 (世界標準時間)。"],[[["\u003cp\u003eThis content focuses on how to draw a Google chart, specifically a pie chart, using JavaScript and the Google Visualization API.\u003c/p\u003e\n"],["\u003cp\u003eIt explains the process of instantiating a chart object (e.g., \u003ccode\u003egoogle.visualization.PieChart\u003c/code\u003e) and calling the \u003ccode\u003edraw()\u003c/code\u003e method to render the chart within a designated HTML element.\u003c/p\u003e\n"],["\u003cp\u003eIt emphasizes the importance of providing data (using a \u003ccode\u003eDataTable\u003c/code\u003e) and optional chart options to the \u003ccode\u003edraw()\u003c/code\u003e method to customize the visualization.\u003c/p\u003e\n"],["\u003cp\u003eThe content also highlights the asynchronous nature of the \u003ccode\u003edraw()\u003c/code\u003e method and suggests troubleshooting steps if the chart doesn't render correctly.\u003c/p\u003e\n"]]],[],null,["# Draw the Chart\n\n```html\n\u003chtml\u003e\n \u003chead\u003e\n \u003c!--Load the AJAX API--\u003e\n \u003cscript type=\"text/javascript\" src=\"https://www.gstatic.com/charts/loader.js\"\u003e\u003c/script\u003e\n \u003cscript type=\"text/javascript\"\u003e\n\n // Load the Visualization API and the piechart package.\n google.charts.load('current', {'packages':['corechart']});\n\n // Set a callback to run when the Google Visualization API is loaded.\n google.charts.setOnLoadCallback(drawChart);\n\n // Callback that creates and populates a data table, \n // instantiates the pie chart, passes in the data and\n // draws it.\n function drawChart() {\n\n // Create the data table.\n var data = new google.visualization.DataTable();\n data.addColumn('string', 'Topping');\n data.addColumn('number', 'Slices');\n data.addRows([\n ['Mushrooms', 3],\n ['Onions', 1],\n ['Olives', 1],\n ['Zucchini', 1],\n ['Pepperoni', 2]\n ]);\n\n // Set chart options\n var options = {'title':'How Much Pizza I Ate Last Night',\n 'width':400,\n 'height':300};\n\n // Instantiate and draw our chart, passing in some options.\n var chart = new google.visualization.PieChart(document.getElementById('chart_div'));\n chart.draw(data, options);\n }\n \u003c/script\u003e\n \u003c/head\u003e\n\n \u003cbody\u003e\n//Div that will hold the pie chart\n \u003cdiv id=\"chart_div\" style=\"width:400; height:300\"\u003e\u003c/div\u003e\n \u003c/body\u003e\n\u003c/html\u003e\n```\n\nThe last step is to draw the chart. First you must instantiate an instance of the chart class that you want to use, and then you must call `draw()` on the it.\n\nInstantiate your chart\n----------------------\n\nEach chart type is based on a different class, listed in the chart's documentation. For instance, the pie chart is based on the `google.visualization.PieChart` class, the bar chart is based on the `google.visualization.BarChart` class, and so on. Both pie and bar charts are included in the corechart package that you loaded at the beginning of this tutorial. However, if you want a [treemap](/chart/interactive/docs/gallery/treemap#Loading) or [geo chart](/chart/interactive/docs/gallery/geomap) on your page, you must [additionally load the 'treemap' or 'geomap' packages](/chart/interactive/docs/basic_load_libs).\n\nGoogle chart constructors take a single parameter: a reference to the\nDOM element in which to draw the visualization. \n\n```javascript\n var chart = new google.visualization.PieChart(document.getElementById('chart_div'));\n```\n\nDraw your chart\n---------------\n\nAfter you've prepared your data and options, you are ready to draw your chart.\n\nYour page must have an HTML element (typically a `\u003cdiv\u003e`) to hold your chart.\nYou must pass your chart a reference to this element,\nso assign it an ID that you can use to retrieve a reference using `document.getElementById()`.\nAnything inside this element will be replaced by the chart when it is\ndrawn. Consider [whether you should explicitly size this `\u003cdiv\u003e` element](/chart/interactive/docs/basic_customizing_chart#sizing), but for now, specify the chart size in the `\u003cdiv\u003e` HTML.\n\nEvery chart supports a `draw()` method that takes two values: a `DataTable` (or a `DataView`) object that holds your data, and an optional chart options object. The options object is not required, and you can ignore it or pass in null to use the chart's default options.\n\nAfter you call `draw()`, your chart will be drawn on the page. You should\ncall the `draw()` method\nevery time you change the data or the options and want to update the chart.\n\nThe `draw()` method is asynchronous: that is, it returns immediately, but the instance that it returns might not be immediately available. In many cases this is fine; the chart will be drawn eventually. However, if you want to set or retrieve values on a chart after you've called `draw()`, you must wait for it to throw the ready event, which indicates that it is populated. We'll cover listening for events in the next page. \n\n### Troubleshooting\n\nIf your chart doesn't draw on the page, here are some approaches that might help\nyou solve your problems:\n\n- Look for typos. Remember that JavaScript is a case-sensitive language.\n - Use a JavaScript debugger. In Firefox, you can use the JavaScript console, the [Venkman\n Debugger](http://www.mozilla.org/projects/venkman/), or the [Firebug\n add-on](https://addons.mozilla.org/en-US/firefox/addon/1843). In Chrome, you can use the developer tools (Shift + Ctl + J).\n- Search the [Google Visualization API discussion\n group](http://groups.google.com/group/google-visualization-api). If you can't find a post that answers your question, post your question to the group along with a link to a web page that demonstrates the problem.\n\n[**Next: *Draw Multiple Charts***](/chart/interactive/docs/basic_multiple_charts)\n\nMore Information\n----------------\n\n- [`draw()` method](/chart/interactive/docs/reference#visdraw)\n- [Chart Drawing Techniques](/chart/interactive/docs/drawing_charts)"]]