绘制图表
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
<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
类,以此类推。饼图和条形图都包含在您在本教程开头部分加载的 corechart 软件包中。不过,如果您想在网页上使用树状图或地理图表,就必须另外加载“treemap”或“geomap”软件包。
Google 图表构造函数只有一个参数:对要在其中绘制可视化图表的 DOM 元素的引用。
var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
绘制图表
准备好数据和选项后,就可以绘制图表了。
您的网页必须具有 HTML 元素(通常为 <div>
)来保存图表。您必须向图表传递对此元素的引用,因此请为其分配一个 ID,用于通过 document.getElementById()
检索引用。绘制时,此元素中的所有内容都会被图表替换。考虑您是否应明确指定此 <div>
元素的大小,但目前应在 <div>
HTML 中指定图表大小。
每个图表都支持采用以下两个值的 draw()
方法:保存数据的 DataTable
(或 DataView
)对象和可选的图表选项对象。选项对象不是必需的,您可以忽略它或传入 null 以使用图表的默认选项。
调用 draw()
后,系统将在页面上绘制图表。每次更改数据或选项并想要更新图表时,您都应该调用 draw()
方法。
draw()
方法是异步的:也就是说,它会立即返回,但其返回的实例可能不会立即可用。在许多情况下,这没有问题;系统最终会绘制图表。不过,如果您想在调用 draw()
后设置或检索图表上的值,则必须等待其抛出 ready 事件,表示已填充该图表。我们将在下一页中介绍如何监听事件。
问题排查
如果您的图表没有在页面上绘制,以下一些方法可能可以帮助您解决问题:
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-07-10。
[null,null,["最后更新时间 (UTC):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)"]]