Trang này liệt kê các đối tượng mà API Hình ảnh của Google cung cấp, cũng như các phương thức tiêu chuẩn mà mọi hình ảnh trực quan đều hiển thị.
Lưu ý: Không gian tên của API Google Visual là
google.visualization.*
- Lớp DataTable
- Lớp DataView
- Lớp ChartWrapper
- Lớp ChartEditor
- Phương pháp thao túng dữ liệu
- Định dạng
- Định dạng mũi tên
- Định dạng thanh
- ColorFormat (Định dạng màu)
- Định dạng ngày
- NumberFormat (Số định dạng số)
- PatternFormat
- Lớp tiện ích trợ giúp
- Các lớp truy vấn
- Lớp hiển thị lỗi
- Sự kiện
- Thuộc tính và phương thức trực quan hoá tiêu chuẩn
- Các phương thức tĩnh
Lưu ý về mảng
Một số trình duyệt không xử lý đúng cách dấu phẩy cuối trong mảng JavaScript, vì vậy, bạn không nên sử dụng chúng. Có thể sử dụng giá trị trống ở giữa một mảng. Vì vậy, ví dụ:
data = ['a','b','c', ,]; // BAD
data = ['a','b','c']; // OK
data = ['a','b', ,'d']; // Also OK. The third value is undefined.
Lớp DataTable
Biểu thị bảng giá trị hai chiều và có thể thay đổi. Để tạo bản sao chỉ đọc của DataTable
(không bắt buộc phải lọc để hiển thị các giá trị, hàng hoặc cột cụ thể), hãy tạo DataView.
Mỗi cột được gán một loại dữ liệu, cùng với một số thuộc tính không bắt buộc, bao gồm cả mã nhận dạng, nhãn và chuỗi mẫu.
Ngoài ra, bạn có thể chỉ định thuộc tính tuỳ chỉnh (cặp tên/giá trị) cho bất kỳ ô, hàng, cột hoặc toàn bộ bảng. Một số hình ảnh trực quan hỗ trợ các thuộc tính tuỳ chỉnh cụ thể; ví dụ: Hình ảnh trực quan về bảng hỗ trợ một thuộc tính ô có tên là "style" (kiểu), cho phép bạn gán một chuỗi kiểu CSS cùng dòng cho ô hiển thị trong bảng. Hình ảnh phải mô tả trong tài liệu của mình bất kỳ thuộc tính tuỳ chỉnh nào mà hình ảnh hỗ trợ.
Xem thêm: QueryResponse.getDataTable
Hàm dựng
Cú pháp
DataTable(opt_data, opt_version)
- opt_data
-
[Không bắt buộc] Dữ liệu dùng để khởi tạo bảng. Đây có thể là JSON được trả về bằng cách gọi
DataTable.toJSON()
trên bảng điền sẵn hoặc đối tượng JavaScript chứa dữ liệu dùng để khởi tạo bảng. Cấu trúc của đối tượng cố định JavaScript được mô tả tại đây. Nếu bạn không cung cấp thông số này, một bảng dữ liệu trống mới sẽ được trả về. - opt_version
- [Không bắt buộc] Một giá trị số chỉ định phiên bản của giao thức có dây được sử dụng. Tính năng này chỉ được trình triển khai Nguồn dữ liệu của Công cụ biểu đồ sử dụng. Phiên bản hiện tại là 0.6.
Chi tiết
Đối tượng DataTable
được dùng để lưu giữ dữ liệu được truyền vào một hình ảnh trực quan.
DataTable
là bảng hai chiều cơ bản. Tất cả dữ liệu trong mỗi cột phải có cùng một loại dữ liệu. Mỗi cột có một chỉ số mô tả bao gồm loại dữ liệu tương ứng, một nhãn cho cột đó (có thể hiển thị bằng hình ảnh) và một mã có thể dùng để tham chiếu đến một cột cụ thể (thay vì sử dụng các chỉ mục cột). Đối tượng DataTable
cũng hỗ trợ bản đồ các thuộc tính tuỳ ý được gán cho một giá trị cụ thể, một hàng, một cột hoặc toàn bộ DataTable
. Hình ảnh trực quan có thể dùng những hình ảnh này để hỗ trợ các tính năng bổ sung; ví dụ: Hình ảnh trực quan về bảng sử dụng các thuộc tính tuỳ chỉnh để cho phép bạn chỉ định tên hoặc kiểu lớp tuỳ ý cho từng ô.
Mỗi ô trong bảng chứa một giá trị. Các ô có thể có giá trị rỗng hoặc giá trị thuộc loại mà cột chỉ định. Các ô có thể chọn phiên bản "đã định dạng" của dữ liệu; đây là phiên bản chuỗi của dữ liệu được định dạng để hiển thị bằng hình ảnh trực quan. Hình ảnh trực quan có thể (nhưng không bắt buộc) sử dụng phiên bản được định dạng để hiển thị, nhưng sẽ luôn sử dụng chính dữ liệu đó cho mọi sắp xếp hoặc tính toán mà nó thực hiện (chẳng hạn như xác định vị trí đặt biểu đồ trên biểu đồ). Một ví dụ có thể là gán các giá trị "thấp" "trung bình" và "cao" dưới dạng các giá trị được định dạng cho các giá trị ô số 1, 2 và 3.
Để thêm hàng dữ liệu sau khi gọi hàm khởi tạo, bạn có thể gọi
addRow()
cho một hàng hoặc
addRows()
cho nhiều hàng. Bạn cũng có thể thêm các cột bằng cách gọi phương thức addColumn()
. Cũng có các phương thức xoá cho hàng và cột, nhưng thay vì xoá hàng hoặc cột, hãy cân nhắc tạo một DataView
là một thành phần hiển thị có chọn lọc của DataTable
.
Nếu bạn thay đổi các giá trị trong một DataTable
sau khi nó được chuyển vào phương thức
draw()
của hình ảnh, các thay đổi sẽ không thay đổi ngay biểu đồ. Bạn phải gọi lại
draw()
để phản ánh mọi thay đổi.
Lưu ý: Google Forms không thực hiện bất kỳ quá trình xác thực nào trên bảng dữ liệu. (Nếu có, biểu đồ sẽ hiển thị chậm hơn.) Nếu bạn cung cấp một con số mà cột của bạn đang mong đợi một chuỗi, hoặc ngược lại, Google Biểu đồ sẽ cố gắng hết sức để diễn giải giá trị hợp lý, nhưng sẽ không gắn cờ các lỗi.
Ví dụ
Ví dụ sau minh hoạ cách tạo và điền DataTable
bằng một chuỗi ký tự, có cùng dữ liệu như trong ví dụ về JavaScript ở trên:
var dt = new google.visualization.DataTable({ cols: [{id: 'task', label: 'Task', type: 'string'}, {id: 'hours', label: 'Hours per Day', type: 'number'}], rows: [{c:[{v: 'Work'}, {v: 11}]}, {c:[{v: 'Eat'}, {v: 2}]}, {c:[{v: 'Commute'}, {v: 2}]}, {c:[{v: 'Watch TV'}, {v:2}]}, {c:[{v: 'Sleep'}, {v:7, f:'7.000'}]}] }, 0.6);
Ví dụ sau đây sẽ tạo một DataTable
trống mới, sau đó điền thủ công dữ liệu đó giống như ở trên:
var data = new google.visualization.DataTable(); data.addColumn('string', 'Task'); data.addColumn('number', 'Hours per Day'); data.addRows([ ['Work', 11], ['Eat', 2], ['Commute', 2], ['Watch TV', 2], ['Sleep', {v:7, f:'7.000'}] ]);
Bạn có thể tạo một DataTable
bằng cách gọi hàm khởi tạo không có tham số, sau đó thêm giá trị bằng cách gọi phương thức addColumn()
/addRows()
được liệt kê bên dưới hoặc truyền vào một đối tượng cố định JavaScript đã điền để khởi tạo. Cả hai phương thức đều được mô tả dưới đây. Bạn nên dùng
dịch vụ nào?
-
Việc tạo và điền bảng trong JavaScript bằng cách gọi
addColumn()
,addRow()
vàaddRows()
là mã rất dễ đọc. Phương thức này rất hữu ích khi bạn nhập mã theo cách thủ công. Tốc độ này chậm hơn so với việc sử dụng ký hiệu cố định đối tượng (như mô tả tiếp theo), nhưng trong các bảng nhỏ hơn (chẳng hạn như 1.000 ô), có thể bạn sẽ không nhận thấy nhiều sự khác biệt. -
Việc khai báo trực tiếp đối tượng
DataTable
bằng cách sử dụng ký hiệu đối tượng đọc nhanh hơn đáng kể trong các bảng lớn. Tuy nhiên, đó có thể là một cú pháp phức tạp để thực hiện được; hãy sử dụng cú pháp này nếu bạn có thể tạo cú pháp cố định đối tượng trong mã, giúp giảm khả năng xảy ra lỗi.
Phương pháp
Phương thức | Giá trị trả về | Mô tả |
---|---|---|
HOẶC
|
Số |
Thêm một cột mới vào bảng dữ liệu, rồi trả về chỉ mục của cột mới. Tất cả các ô của cột mới đều được gán giá trị Chữ ký đầu tiên có các thông số sau:
Chữ ký thứ hai có một tham số đối tượng duy nhất với các thành phần sau:
Xem thêm: getColumnId, getColumnLabel, getColumnType, insertColumn, getColumnRole |
addRow(opt_cellArray) |
Số |
Thêm một hàng mới vào bảng dữ liệu, rồi trả về chỉ mục của hàng mới.
Ví dụ: data.addRow(); // Add an empty row data.addRow(['Hermione', new Date(1999,0,1)]); // Add a row with a string and a date value. // Add a row with two cells, the second with a formatted value. data.addRow(['Hermione', {v: new Date(1999,0,1), f: 'January First, Nineteen ninety-nine'} ]); data.addRow(['Col1Val', null, 'Col3Val']); // Second column is undefined. data.addRow(['Col1Val', , 'Col3Val']); // Same as previous. |
addRows(numOrArray) |
Số |
Thêm các hàng mới vào bảng dữ liệu và trả về chỉ mục của hàng đã thêm gần đây nhất. Bạn có thể gọi phương thức này để tạo các hàng trống mới hoặc bằng dữ liệu dùng để điền vào các hàng như mô tả bên dưới.
Ví dụ: data.addRows([ ['Ivan', new Date(1977,2,28)], ['Igor', new Date(1962,7,5)], ['Felix', new Date(1983,11,17)], ['Bob', null] // No date set for Bob. ]); Xem thêm: insertRows |
clone() |
Bảng dữ liệu | Trả về bản sao của bảng dữ liệu. Kết quả là một bản sao sâu của bảng dữ liệu, ngoại trừ thuộc tính ô, thuộc tính hàng, thuộc tính bảng và thuộc tính cột, là các bản sao nông; điều này có nghĩa là các thuộc tính gốc không được sao chép bằng tệp đối chiếu, nhưng các thuộc tính gốc được sao chép theo giá trị. |
getColumnId(columnIndex) |
Chuỗi |
Trả về giá trị nhận dạng của một cột nhất định do chỉ mục cột chỉ định trong bảng cơ bản. Đối với các bảng dữ liệu mà truy vấn truy xuất, giá trị nhận dạng cột sẽ do nguồn dữ liệu đặt và có thể dùng để tham chiếu đến các cột khi sử dụng ngôn ngữ truy vấn. Xem thêm: Query.setQuery |
getColumnIndex(columnIdentifier) |
Chuỗi, Số |
Trả về chỉ mục của một cột nhất định do chỉ mục cột, mã nhận dạng hoặc nhãn chỉ định nếu có trong bảng này, nếu không thì trả về -1. Khi columnIdentifier là một chuỗi, trước tiên, chuỗi này dùng để tìm cột theo mã nhận dạng, sau đó theo nhãn của cột.Xem thêm: getColumnId, getColumnLabel |
getColumnLabel(columnIndex) |
Chuỗi |
Trả về nhãn của một cột cho sẵn theo chỉ mục của cột trong bảng cơ bản.
Nhãn cột thường xuất hiện trong hình ảnh. Ví dụ: nhãn cột có thể hiển thị dưới dạng tiêu đề cột trong bảng, hoặc dưới dạng nhãn chú giải trong biểu đồ hình tròn. Đối với các bảng dữ liệu mà truy vấn truy xuất, nhãn cột sẽ được đặt theo nguồn dữ liệu hoặc theo mệnh đề label của
ngôn ngữ truy vấn. Xem thêm: setColumnLabel |
getColumnPattern(columnIndex) |
Chuỗi |
Trả về mẫu định dạng dùng để định dạng các giá trị của cột được chỉ định.
Đối với các bảng dữ liệu được truy xuất theo truy vấn, mẫu cột được đặt theo nguồn dữ liệu
hoặc theo mệnh đề |
getColumnProperties(columnIndex)
|
Đối tượng |
Trả về bản đồ của tất cả thuộc tính cho cột được chỉ định. Lưu ý rằng đối tượng thuộc tính được trả về bằng cách tham chiếu, vì vậy việc thay đổi giá trị trong đối tượng được truy xuất sẽ thay đổi các giá trị đó trong
|
getColumnProperty(columnIndex, name)
|
Tự động |
Trả về giá trị của một thuộc tính được đặt tên hoặc
Xem thêm: setColumnProperty setColumnProperties |
getColumnRange(columnIndex) |
Đối tượng |
Trả về các giá trị tối thiểu và tối đa của các giá trị trong một cột được chỉ định. Đối tượng được trả về có các thuộc tính
|
getColumnRole(columnIndex) |
Chuỗi | Trả về vai trò của cột được chỉ định. |
getColumnType(columnIndex) |
Chuỗi |
Trả về loại của một cột nhất định được chỉ định trong chỉ mục cột.
Loại cột được trả về có thể là một trong những loại sau: |
getDistinctValues(columnIndex) |
Mảng đối tượng |
Trả về các giá trị duy nhất trong một cột nhất định, theo thứ tự tăng dần.
Loại đối tượng được trả về giống với loại đối tượng được phương thức |
getFilteredRows(filters) |
Mảng đối tượng |
Trả về chỉ mục hàng cho những hàng khớp với tất cả bộ lọc đã cho. Các chỉ mục được trả về theo thứ tự tăng dần. Bạn có thể sử dụng kết quả của phương thức này làm dữ liệu đầu vào cho
Một thuộc tính không bắt buộc khác là
Ví dụ: |
getFormattedValue(rowIndex, columnIndex)
|
Chuỗi |
Trả về giá trị đã định dạng của ô tại các chỉ mục hàng và cột đã cho.
Để biết thêm thông tin về các giá trị cột định dạng, vui lòng xem tài liệu tham khảo về ngôn ngữ truy vấn. Xem thêm: setFormattedValue |
getNumberOfColumns() |
Số | Trả về số lượng cột trong bảng. |
getNumberOfRows() |
Số | Trả về số hàng trong bảng. |
getProperties(rowIndex, columnIndex)
|
Đối tượng |
Trả về bản đồ của tất cả thuộc tính cho ô được chỉ định. Lưu ý rằng đối tượng thuộc tính được trả về bằng cách tham chiếu, vì vậy việc thay đổi giá trị trong đối tượng được truy xuất sẽ thay đổi các giá trị đó trong
|
getProperty(rowIndex, columnIndex, name)
|
Tự động |
Trả về giá trị của một thuộc tính được đặt tên hoặc
Xem thêm: setCell setProperties setProperty |
getRowProperties(rowIndex)
|
Đối tượng |
Trả về bản đồ của tất cả thuộc tính cho hàng được chỉ định. Lưu ý rằng đối tượng thuộc tính được trả về bằng cách tham chiếu, vì vậy việc thay đổi giá trị trong đối tượng được truy xuất sẽ thay đổi các giá trị đó trong
|
getRowProperty(rowIndex, name)
|
Tự động |
Trả về giá trị của một thuộc tính được đặt tên hoặc
Xem thêm: setRowProperty setRowProperties |
getSortedRows(sortColumns) |
Mảng số |
Trả về phiên bản sắp xếp của bảng mà không cần sửa đổi thứ tự của dữ liệu cơ bản.
Để sắp xếp vĩnh viễn dữ liệu cơ bản, hãy gọi
Giá trị trả về là một mảng số, mỗi số là một chỉ mục của
hàng
Lưu ý rằng cách sắp xếp được đảm bảo ổn định: điều này có nghĩa là nếu bạn sắp xếp các giá trị bằng nhau của hai hàng, thì cách sắp xếp tương tự sẽ luôn trả về các hàng theo cùng một thứ tự. Ví dụ: Để lặp lại trên các hàng được sắp xếp theo cột thứ ba, hãy sử dụng: var rowInds = data.getSortedRows([{column: 2}]); for (var i = 0; i < rowInds.length; i++) { var v = data.getValue(rowInds[i], 2); } |
getTableProperties
|
Đối tượng | Trả về bản đồ tất cả thuộc tính cho bảng. |
getTableProperty(name) |
Tự động |
Trả về giá trị của một thuộc tính được đặt tên hoặc
Xem thêm: setTableProperties setTableProperty |
getValue(rowIndex, columnIndex) |
Đối tượng |
Trả về giá trị của ô tại các chỉ mục hàng và cột đã cho.
Loại giá trị được trả về phụ thuộc vào loại cột (xem nội dung getColumnType):
|
insertColumn(columnIndex, type [,label [,id]])
|
Không |
Chèn một cột mới vào bảng dữ liệu tại chỉ mục cụ thể. Tất cả các cột hiện tại tại hoặc sau chỉ mục được chỉ định sẽ được chuyển sang chỉ mục cao hơn.
Xem thêm: addColumn |
insertRows(rowIndex, numberOrArray) |
Không |
Chèn số hàng đã chỉ định tại chỉ mục hàng đã chỉ định.
Xem thêm: addRows |
removeColumn(columnIndex) |
Không |
Xoá cột tại chỉ mục được chỉ định.
Xem thêm: removeColumn |
removeColumns(columnIndex, numberOfColumns)
|
Không |
Xoá số cột được chỉ định bắt đầu từ cột tại chỉ mục đã chỉ định.
Xem thêm: removeColumn |
removeRow(rowIndex) |
Không |
Xoá hàng tại chỉ mục được chỉ định.
Xem thêm: removeRows |
removeRows(rowIndex, numberOfRows) |
Không |
Xoá số hàng được chỉ định bắt đầu khỏi hàng tại chỉ mục được chỉ định.
Xem thêm: removeRow |
setCell(rowIndex, columnIndex [, value [, formattedValue [, properties]]])
|
Không |
Đặt giá trị, giá trị được định dạng và/hoặc thuộc tính của ô.
Xem thêm: setValue(), setFormattedValue(), setProperty(), setProperties(). |
setColumnLabel(columnIndex, label)
|
Không |
Đặt nhãn của một cột.
Xem thêm: getColumnLabel |
setColumnProperty(columnIndex, name, value)
|
Không |
Đặt một thuộc tính cột. Một số hình ảnh hỗ trợ các thuộc tính hàng, cột hoặc ô để sửa đổi cách hiển thị hoặc hành vi của chúng; xem tài liệu hình ảnh để biết những thuộc tính nào được hỗ trợ.
Xem thêm:setColumnProperties getColumnProperty |
setColumnProperties(columnIndex, properties)
|
Không |
Đặt nhiều thuộc tính cột. Một số hình ảnh hỗ trợ các thuộc tính hàng, cột hoặc ô để sửa đổi cách hiển thị hoặc hành vi của chúng; xem tài liệu hình ảnh để biết những thuộc tính nào được hỗ trợ.
Xem thêm: setColumnProperty getColumnProperty |
setFormattedValue(rowIndex, columnIndex, formattedValue)
|
Không |
Đặt giá trị đã định dạng của ô.
Xem thêm: getFormattedValue |
setProperty(rowIndex, columnIndex, name, value)
|
Không |
Đặt một thuộc tính ô. Một số hình ảnh hỗ trợ các thuộc tính hàng, cột hoặc ô để sửa đổi cách hiển thị hoặc hành vi của chúng; xem tài liệu hình ảnh để biết những thuộc tính nào được hỗ trợ.
Xem thêm: setCell setProperties getProperty |
setProperties(rowIndex, columnIndex, properties)
|
Không |
Đặt nhiều thuộc tính ô. Một số hình ảnh hỗ trợ các thuộc tính hàng, cột hoặc ô để sửa đổi cách hiển thị hoặc hành vi của chúng; xem tài liệu hình ảnh để biết những thuộc tính nào được hỗ trợ.
Xem thêm: setCell setProperty getProperty |
setRowProperty(rowIndex, name, value)
|
Không |
Đặt một thuộc tính hàng. Một số hình ảnh hỗ trợ các thuộc tính hàng, cột hoặc ô để sửa đổi cách hiển thị hoặc hành vi của chúng; xem tài liệu hình ảnh để biết những thuộc tính nào được hỗ trợ.
Xem thêm: setRowProperties getRowProperty |
setRowProperties(rowIndex, properties)
|
Không |
Đặt nhiều thuộc tính hàng. Một số hình ảnh hỗ trợ các thuộc tính hàng, cột hoặc ô để sửa đổi cách hiển thị hoặc hành vi của chúng; xem tài liệu hình ảnh để biết những thuộc tính nào được hỗ trợ.
Xem thêm: setRowProperty getRowProperty |
setTableProperty(name, value)
|
Không |
Đặt một thuộc tính bảng. Một số hình ảnh trực quan hỗ trợ các thuộc tính bảng, hàng, cột hoặc ô để sửa đổi chế độ hiển thị hoặc hành vi của chúng; xem tài liệu trực quan để biết thuộc tính nào được hỗ trợ.
Xem thêm: setTableProperties getTableProperty |
setTableProperties(properties) |
Không |
Đặt nhiều thuộc tính bảng. Một số hình ảnh trực quan hỗ trợ các thuộc tính bảng, hàng, cột hoặc ô để sửa đổi chế độ hiển thị hoặc hành vi của chúng; xem tài liệu trực quan để biết thuộc tính nào được hỗ trợ.
Xem thêm: setTableProperty getTableProperty |
setValue(rowIndex, columnIndex, value) |
Không |
Đặt giá trị của một ô. Ngoài việc ghi đè bất kỳ giá trị ô hiện có nào, phương thức này cũng sẽ xóa mọi giá trị và thuộc tính được định dạng cho ô.
Xem thêm: setCell, setFormattedValue, setProperty, setProperties |
sort(sortColumns) |
Không |
Sắp xếp các hàng theo các cột sắp xếp đã chỉ định. DataTable được
sửa đổi bằng phương thức này. Hãy xem getSortedRows() để biết mô tả về chi tiết sắp xếp. Phương thức này không trả về dữ liệu đã sắp xếp.Xem thêm: getArrangeedRows Ví dụ: Để sắp xếp theo cột thứ ba, sau đó theo cột thứ hai, hãy sử dụng: data.sort([{column: 2}, {column: 1}]);
|
toJSON() |
Chuỗi |
Trả về biểu diễn JSON của DataTable có thể được truyền vào hàm DataTable hàm dựng. Ví
dụ:
{"cols":[{"id":"Col1","label":"","type":"date"}], "rows":[ {"c":[{"v":"a"},{"v":"Date(2010,10,6)"}]}, {"c":[{"v":"b"},{"v":"Date(2010,10,7)"}]} ] } |
Định dạng thông số data của Hàm khởi tạo JavaScript của hàm khởi tạo
Bạn có thể khởi chạy DataTable
bằng cách chuyển đối tượng cố định chuỗi JavaScript vào thông số data. Chúng ta sẽ gọi đối tượng này là đối tượng data. Bạn có thể lập trình đối tượng này theo cách thủ công, theo mô tả dưới đây hoặc bạn có thể sử dụng thư viện Python trợ giúp nếu bạn biết cách sử dụng Python và trang web của bạn có thể sử dụng. Tuy nhiên, nếu bạn muốn tạo đối tượng theo cách thủ công, phần này sẽ mô tả cú pháp.
Trước tiên, hãy xem ví dụ về một đối tượng JavaScript đơn giản mô tả bảng có 3 hàng và 3 cột (loại Chuỗi, Số và Ngày):
{ cols: [{id: 'A', label: 'NEW A', type: 'string'}, {id: 'B', label: 'B-label', type: 'number'}, {id: 'C', label: 'C-label', type: 'date'} ], rows: [{c:[{v: 'a'}, {v: 1.0, f: 'One'}, {v: new Date(2008, 1, 28, 0, 31, 26), f: '2/28/08 12:31 AM'} ]}, {c:[{v: 'b'}, {v: 2.0, f: 'Two'}, {v: new Date(2008, 2, 30, 0, 31, 26), f: '3/30/08 12:31 AM'} ]}, {c:[{v: 'c'}, {v: 3.0, f: 'Three'}, {v: new Date(2008, 3, 30, 0, 31, 26), f: '4/30/08 12:31 AM'} ]} ], p: {foo: 'hello', bar: 'world!'} }
Bây giờ, hãy mô tả cú pháp:
Đối tượng dữ liệu bao gồm hai thuộc tính cấp cao nhất bắt buộc là cols
và rows
và một thuộc tính p
không bắt buộc, là bản đồ các giá trị tuỳ ý.
Lưu ý: Tất cả tên thuộc tính và hằng số chuỗi xuất hiện đều có phân biệt chữ hoa chữ thường. Ngoài ra, các thuộc tính được mô tả là lấy giá trị chuỗi phải nằm trong dấu ngoặc kép.
Ví dụ: nếu bạn muốn chỉ định thuộc tính kiểu là số, thuộc tính đó sẽ được biểu thị như sau: type: 'number'
nhưng bản thân giá trị (dưới dạng số) sẽ được biểu thị như sau: v: 42
Thuộc tính cols
cols
là một mảng các đối tượng mô tả mã nhận dạng và loại của mỗi cột. Mỗi thuộc tính là một đối tượng có các thuộc tính sau (phân biệt chữ hoa chữ thường):
-
type
[Bắt buộc] Loại dữ liệu trong cột. Hỗ trợ các giá trị chuỗi sau (ví dụ: thuộc tính v: mô tả sau):-
'boolean' - Giá trị boolean JavaScript ('true' hoặc 'false'). Giá trị mẫu:
v:'true'
-
'number' - Giá trị số JavaScript. Giá trị mẫu:
v:7
,v:3.14
,v:-55
- 'string' - Giá trị chuỗi JavaScript. Giá trị mẫu:
v:'hello'
-
"date" – Đối tượng Ngày JavaScript (tháng dựa trên 0), với thời gian bị cắt ngắn. Giá trị mẫu:
v:new Date(2008, 0, 15)
-
"ngày giờ" - Đối tượng Ngày của JavaScript bao gồm thời gian. Giá trị mẫu:
v:new Date(2008, 0, 15, 14, 30, 45)
-
"timeofday" – Mảng gồm ba số và một số thứ tư tuỳ chọn, đại diện cho giờ (0 cho biết nửa đêm), phút, giây và mili giây tuỳ chọn. Giá trị mẫu:
v:[8, 15, 0]
,v: [6, 12, 1, 144]
-
'boolean' - Giá trị boolean JavaScript ('true' hoặc 'false'). Giá trị mẫu:
-
id
[Không bắt buộc] Mã chuỗi của cột. Phải là duy nhất trong bảng. Hãy sử dụng các ký tự chữ và số cơ bản để trang lưu trữ không yêu cầu các ký tự thoát quen thuộc để truy cập vào cột trong JavaScript. Hãy cẩn thận để không chọn từ khoá JavaScript. Ví dụ:id:'col_1'
-
label
[Không bắt buộc] Giá trị chuỗi mà một số hình ảnh trực quan hiển thị cho cột này. Ví dụ:label:'Height'
-
pattern
[Không bắt buộc] Mẫu chuỗi mà nguồn dữ liệu sử dụng để định dạng các giá trị số, cột ngày hoặc giờ. Thông tin này chỉ để tham khảo; bạn có thể không cần đọc mẫu và không bắt buộc phải có mẫu này. Ứng dụng Google Visual không sử dụng giá trị này (ứng dụng đọc giá trị được định dạng của ô). NếuDataTable
đến từ một nguồn dữ liệu để phản hồi một truy vấn có mệnh đề định dạng, thì mẫu mà bạn chỉ định trong mệnh đề đó có thể sẽ được trả về trong giá trị này. Các tiêu chuẩn về mẫu được đề xuất là ICU LinearFormat và SimpleDateFormat . -
p
[Không bắt buộc] Một đối tượng là bản đồ của các giá trị tuỳ chỉnh được áp dụng cho ô. Các giá trị này có thể thuộc bất kỳ loại JavaScript nào. Nếu hình ảnh của bạn hỗ trợ bất kỳ thuộc tính cấp ô nào, thì hình ảnh sẽ mô tả các thuộc tính đó; nếu không, thuộc tính này sẽ bị bỏ qua. Ví dụ:p:{style: 'border: 1px solid green;'}
.
Ví dụ về cols
cols: [{id: 'A', label: 'NEW A', type: 'string'}, {id: 'B', label: 'B-label', type: 'number'}, {id: 'C', label: 'C-label', type: 'date'}]
Thuộc tính rows
chứa một mảng các đối tượng hàng.
Mỗi đối tượng hàng có một thuộc tính bắt buộc tên là c
. Đây là một mảng ô trong hàng đó. Lớp này cũng có một thuộc tính p
không bắt buộc giúp xác định bản đồ các giá trị tuỳ chỉnh
tuỳ ý để chỉ định cho toàn bộ hàng. Nếu có hình ảnh về thuộc tính cấp hàng, thì hình ảnh trực quan sẽ mô tả các hình ảnh đó; nếu không, thuộc tính này sẽ bị bỏ qua.
Mỗi ô trong bảng được mô tả bởi một đối tượng có các thuộc tính sau:
-
v
[Không bắt buộc] Giá trị ô. Loại dữ liệu phải khớp với loại dữ liệu cột. Nếu ô rỗng, thuộc tínhv
phải rỗng, mặc dù thuộc tính này vẫn có thể có các thuộc tínhf
vàp
. -
f
[Không bắt buộc] Phiên bản chuỗi của giá trịv
, được định dạng để hiển thị. Thông thường, các giá trị này sẽ khớp nhau, mặc dù không cần thiết, vì vậy, nếu chỉ địnhDate(2008, 0, 1)
chov
, bạn nên chỉ định "1 tháng 1 năm 2008" hoặc một số chuỗi như vậy cho thuộc tính này. Giá trị này không được kiểm tra với giá trịv
. Hình ảnh trực quan này sẽ không dùng giá trị này để tính toán, mà chỉ dùng làm nhãn để hiển thị. Nếu bạn bỏ qua, một phiên bản chuỗi củav
sẽ được tạo tự động bằng trình định dạng mặc định. Bạn có thể sửa đổi các giá trịf
bằng trình định dạng của riêng mình hoặc đặt bằngsetFormattedValue()
haysetCell()
, hoặc truy xuất bằnggetFormattedValue()
. -
p
[Không bắt buộc] Một đối tượng là bản đồ của các giá trị tuỳ chỉnh được áp dụng cho ô. Các giá trị này có thể thuộc bất kỳ loại JavaScript nào. Nếu hình ảnh của bạn hỗ trợ mọi thuộc tính cấp ô, thì hình ảnh sẽ mô tả các thuộc tính đó. Bạn có thể truy xuất các thuộc tính này bằng phương thứcgetProperty()
vàgetProperties()
. Ví dụ:p:{style: 'border: 1px solid green;'}
.
Các ô trong mảng hàng phải theo đúng thứ tự như nội dung mô tả cột trong
cols
. Để chỉ định một ô rỗng, bạn có thể chỉ định null
, để trống cho một ô trong một mảng hoặc bỏ qua các thành phần mảng ở cuối. Vì vậy, để chỉ định một hàng có giá trị rỗng cho hai ô đầu tiên, bạn có thể chỉ định [ , , {cell_val}]
hoặc [null, null, {cell_val}]
.
Sau đây là đối tượng bảng mẫu có 3 cột, được điền 3 hàng dữ liệu:
{ cols: [{id: 'A', label: 'NEW A', type: 'string'}, {id: 'B', label: 'B-label', type: 'number'}, {id: 'C', label: 'C-label', type: 'date'} ], rows: [{c:[{v: 'a'}, {v: 1.0, f: 'One'}, {v: new Date(2008, 1, 28, 0, 31, 26), f: '2/28/08 12:31 AM'} ]}, {c:[{v: 'b'}, {v: 2.0, f: 'Two'}, {v: new Date(2008, 2, 30, 0, 31, 26), f: '3/30/08 12:31 AM'} ]}, {c:[{v: 'c'}, {v: 3.0, f: 'Three'}, {v: new Date(2008, 3, 30, 0, 31, 26), f: '4/30/08 12:31 AM'} ]} ] }
Thuộc tính p
Thuộc tính p
cấp bảng là một bản đồ của các giá trị tuỳ chỉnh được áp dụng cho toàn bộ
DataTable
. Các giá trị này có thể thuộc bất kỳ loại JavaScript nào. Nếu hình ảnh của bạn hỗ trợ mọi thuộc tính ở cấp dữ liệu, thì hình ảnh sẽ mô tả các thuộc tính đó; nếu không, thuộc tính này sẽ được dùng để sử dụng cho ứng dụng.
Ví dụ: p:{className: 'myDataTable'}
.
Lớp DataView
Chế độ xem chỉ có thể đọc của DataTable cơ bản. DataView
chỉ cho phép chọn một tập hợp nhỏ các cột và/hoặc hàng. Ngoài ra, bạn cũng có thể sắp xếp lại thứ tự các cột/hàng và nhân bản các cột/hàng.
Thành phần hiển thị là một cửa sổ trực tiếp trên DataTable
cơ bản, không phải ảnh chụp nhanh dữ liệu tĩnh.
Tuy nhiên, bạn vẫn phải cẩn thận khi thay đổi cấu trúc của bảng, như mô tả ở đây:
-
Việc thêm hoặc xoá các cột khỏi bảng cơ bản sẽ không được thành phần hiển thị phản ánh và có thể gây ra hành vi không mong muốn trong thành phần hiển thị; bạn sẽ phải tạo
DataView
mới từDataTable
để chọn những thay đổi này. -
Việc thêm hoặc xoá hàng khỏi bảng cơ bản là an toàn và các thay đổi sẽ được
áp dụng cho chế độ xem ngay lập tức (nhưng bạn phải gọi
draw()
trên mọi hình ảnh sau khi thay đổi này có tập hợp hàng mới được hiển thị). Xin lưu ý rằng nếu chế độ xem của bạn đã lọc ra các hàng bằng cách gọi một trong các phương thứcsetRows() or hideRows()
, đồng thời bạn thêm hoặc xóa các hàng khỏi bảng cơ bản, thì hành vi này là không mong muốn; bạn phải tạo mộtDataView
mới để phản ánh bảng mới. -
Việc thay đổi giá trị ô trong các ô hiện tại là an toàn và các thay đổi sẽ được áp dụng
ngay lập tức cho
DataView
(nhưng bạn phải gọidraw()
trên mọi hình ảnh trực quan sau thay đổi này để hiển thị các giá trị ô mới).
Bạn cũng có thể tạo DataView
từ một DataView
khác. Lưu ý rằng bất cứ khi nào một bảng hoặc chế độ xem cơ bản được đề cập, thì chính nó sẽ đề cập đến cấp độ ngay bên dưới cấp này. Nói cách khác, đây là đối tượng dữ liệu dùng để tạo DataView
này.
DataView
cũng hỗ trợ các cột đã tính toán; đây là các cột có giá trị được
tính toán nhanh bằng cách sử dụng một hàm mà bạn cung cấp. Ví dụ: bạn có thể thêm một cột là tổng của hai cột trước hoặc một cột tính toán và thể hiện quý theo lịch trong một ngày từ một cột khác. Hãy xem setColumns()
để biết thêm thông tin.
Khi bạn sửa đổi một DataView
bằng cách ẩn hoặc hiển thị các hàng hoặc cột, hình ảnh đó sẽ không bị ảnh hưởng cho đến khi bạn gọi lại draw()
trên hình ảnh đó.
Bạn có thể kết hợp DataView.getFilteredRows()
với DataView.setRows()
để tạo DataView
với một tập hợp con dữ liệu thú vị, như minh hoạ bên dưới:
var data = new google.visualization.DataTable(); data.addColumn('string', 'Employee Name'); data.addColumn('date', 'Start Date'); data.addRows(6); data.setCell(0, 0, 'Mike'); data.setCell(0, 1, new Date(2008, 1, 28)); data.setCell(1, 0, 'Bob'); data.setCell(1, 1, new Date(2007, 5, 1)); data.setCell(2, 0, 'Alice'); data.setCell(2, 1, new Date(2006, 7, 16)); data.setCell(3, 0, 'Frank'); data.setCell(3, 1, new Date(2007, 11, 28)); data.setCell(4, 0, 'Floyd'); data.setCell(4, 1, new Date(2005, 3, 13)); data.setCell(5, 0, 'Fritz'); data.setCell(5, 1, new Date(2007, 9, 2)); // Create a view that shows everyone hired since 2007. var view = new google.visualization.DataView(data); view.setRows(view.getFilteredRows([{column: 1, minValue: new Date(2007, 0, 1)}])); var table = new google.visualization.Table(document.getElementById('test_dataview')); table.draw(view, {sortColumn: 1});
Hàm khởi tạo
Có hai cách để tạo một phiên bản DataView
mới:
Hàm dựng 1
var myView = new google.visualization.DataView(data)
data
-
Một
DataTable
hoặcDataView
dùng để khởi tạo thành phần hiển thị. Theo mặc định, chế độ xem chứa tất cả các cột và hàng trong bảng dữ liệu cơ bản hoặc chế độ xem, theo thứ tự gốc. Để ẩn hoặc hiển thị các hàng hoặc cột trong thành phần hiển thị này, hãy gọi phương thứcset...()
hoặchide...()
thích hợp.
Xem thêm:
setColumn(), hideColumn(), setRows(), hideRows().
Hàm dựng 2
Hàm khởi tạo này tạo một DataView
mới bằng cách gán DataView
tuần tự cho DataTable
.
Công cụ này giúp bạn tạo lại DataView
mà bạn đã chuyển đổi tuần tự bằng cách sử dụng DataView.toJSON()
.
var myView = google.visualization.DataView.fromJSON(data, viewAsJson)
- dữ liệu
-
Đối tượng
DataTable
mà bạn đã dùng để tạoDataView
, trên đó bạn đã gọiDataView.toJSON()
. Nếu bảng này khác với bảng ban đầu, bạn sẽ nhận được các kết quả không thể đoán trước. - viewAsJson
-
Chuỗi JSON được
DataView.toJSON()
trả về. Đây là phần mô tả về các hàng sẽ hiển thị hoặc ẩn khỏi Bảng dữ liệu dữ liệu.
Phương pháp
Phương thức | Giá trị trả về | Mô tả |
---|---|---|
Xem nội dung mô tả bằng DataTable . |
Tương tự như các phương thức DataTable tương đương, ngoại trừ việc chỉ mục hàng/cột đề cập đến chỉ mục trong thành phần hiển thị và không phải trong bảng/chế độ xem cơ bản.
|
|
getTableColumnIndex(viewColumnIndex)
|
Số |
Trả về chỉ mục trong bảng cơ bản (hoặc thành phần hiển thị) của một cột nhất định do chỉ mục của cột đó chỉ định trong thành phần hiển thị này.
Ví dụ: Nếu trước đó |
getTableRowIndex(viewRowIndex) |
Số |
Trả về chỉ mục trong bảng cơ bản (hoặc thành phần hiển thị) của một hàng nhất định do chỉ mục của hàng đó chỉ định trong thành phần hiển thị này.
Ví dụ: Nếu trước đó |
getViewColumnIndex(tableColumnIndex)
|
Số |
Trả về chỉ mục trong thành phần hiển thị này, liên kết tới một cột nhất định do chỉ mục của cột đó chỉ định trong bảng cơ bản (hoặc thành phần hiển thị). Nếu có nhiều chỉ mục như vậy, hãy trả về chỉ mục đầu tiên (chỉ mục nhỏ nhất). Nếu không có chỉ mục như vậy (cột đã chỉ định không có trong chế độ xem), trả về -1.
Ví dụ: Nếu trước đó |
getViewColumns() |
Mảng số |
Trả về các cột trong chế độ xem này theo thứ tự. Nghĩa là nếu gọi |
getViewRowIndex(tableRowIndex) |
Số |
Trả về chỉ mục trong thành phần hiển thị này, liên kết tới một hàng nhất định do chỉ mục của hàng đó chỉ định trong bảng cơ bản (hoặc thành phần hiển thị). Nếu có nhiều chỉ mục như vậy, hãy trả về chỉ mục đầu tiên (chỉ mục nhỏ nhất). Nếu không có chỉ mục như vậy (hàng đã chỉ định không có trong chế độ xem), trả về -1.
Ví dụ: Nếu trước đó |
getViewRows() |
Mảng số |
Trả về các hàng trong thành phần hiển thị này theo thứ tự. Nghĩa là nếu gọi |
hideColumns(columnIndexes) |
không có |
Ẩn các cột được chỉ định khỏi chế độ xem hiện tại.
Ví dụ: Nếu bạn có một bảng có 10 cột, và bạn gọi |
hideRows(min, max) |
Không |
Ẩn tất cả hàng có chỉ mục nằm trong khoảng từ tối thiểu đến tối đa (bao gồm) khỏi chế độ xem hiện tại.
Đây là cú pháp thuận tiện cho |
hideRows(rowIndexes) |
Không |
Ẩn các hàng được chỉ định khỏi chế độ xem hiện tại.
Ví dụ: Nếu bạn có một bảng có 10 hàng và gọi |
setColumns(columnIndexes) |
Không |
Chỉ định cột nào sẽ hiển thị trong chế độ xem này. Mọi cột không được chỉ định sẽ bị ẩn. Đây là một mảng các chỉ mục cột trong bảng/chế độ xem cơ bản hoặc các cột đã tính toán. Nếu bạn không gọi phương thức này, thì chế độ mặc định sẽ là hiển thị tất cả các cột. Mảng này cũng có thể chứa nhiều giá trị trùng lặp để hiển thị cùng một cột nhiều lần. Các cột sẽ xuất hiện theo thứ tự đã chỉ định.
Ví dụ: // Show some columns directly from the underlying data. // Shows column 3 twice. view.setColumns([3, 4, 3, 2]); // Underlying table has a column specifying a value in centimeters. // The view imports this directly, and creates a calculated column // that converts the value into inches. view.setColumns([1,{calc:cmToInches, type:'number', label:'Height in Inches'}]); function cmToInches(dataTable, rowNum){ return Math.floor(dataTable.getValue(rowNum, 1) / 2.54); } |
setRows(min, max) |
Không |
Đặt các hàng trong thành phần hiển thị này thành tất cả chỉ mục (trong bảng/chế độ xem cơ bản) nằm trong khoảng từ tối thiểu đến tối đa (bao gồm cả hai chỉ mục này). Dưới đây là cú pháp thuận tiện cho |
setRows(rowIndexes) |
Không |
Thiết lập các hàng hiển thị trong chế độ xem này, dựa trên số chỉ mục từ bảng/chế độ xem cơ bản.
Ví dụ: Để tạo chế độ xem có hàng ba và không có bảng/chế độ xem cơ bản: |
toDataTable() |
Bảng dữ liệu |
Trả về một đối tượng DataTable được điền sẵn các hàng và cột hiển thị của DataView .
|
toJSON() |
chuỗi |
Trả về một chuỗi đại diện của DataView này. Chuỗi này không chứa dữ liệu thực tế; chỉ chứa các chế độ cài đặt dành riêng cho DataView , chẳng hạn như các hàng và cột hiển thị. Bạn có thể lưu trữ chuỗi này và truyền chuỗi đó đến hàm tĩnh DataView.fromJSON()
hàm dựng để tạo lại thành phần hiển thị này. Dữ liệu này sẽ không bao gồm các cột đã tạo.
|
Lớp ChartWrapper
Lớp ChartWrapper
được dùng để bao bọc biểu đồ và xử lý tất cả các truy vấn tải, vẽ và Dữ liệu nguồn cho biểu đồ của bạn. Lớp này hiển thị các phương thức thuận tiện để đặt giá trị trên biểu đồ và vẽ biểu đồ đó. Lớp này đơn giản hoá việc đọc từ một nguồn dữ liệu, vì bạn không
phải tạo một trình xử lý gọi lại truy vấn. Bạn cũng có thể sử dụng biểu đồ để lưu biểu đồ dễ dàng sử dụng lại.
Một lợi ích khác của việc sử dụng ChartWrapper
là bạn có thể giảm số lượt tải thư viện bằng cách sử dụng tính năng tải động. Ngoài ra, bạn không cần tải gói rõ ràng vì ChartWrapper
sẽ xử lý việc tra cứu và tải gói biểu đồ cho bạn.
Hãy xem ví dụ bên dưới để biết thông tin chi tiết.
Tuy nhiên, ChartWrapper
hiện chỉ áp dụng một số sự kiện do các biểu đồ tạo ra:
chọn, sẵn sàng và lỗi. Các sự kiện khác không được truyền qua phiên bản ChartWrapper; để
nhận các sự kiện khác, bạn phải gọi hàm getChart()
và đăng ký trực tiếp các sự kiện trên
bảng điều khiển của biểu đồ, như minh hoạ dưới đây:
var wrapper; function drawVisualization() { // Draw a column chart wrapper = new google.visualization.ChartWrapper({ chartType: 'ColumnChart', dataTable: [['Germany', 'USA', 'Brazil', 'Canada', 'France', 'RU'], [700, 300, 400, 500, 600, 800]], options: {'title': 'Countries'}, containerId: 'visualization' }); // Never called. google.visualization.events.addListener(wrapper, 'onmouseover', uselessHandler); // Must wait for the ready event in order to // request the chart and subscribe to 'onmouseover'. google.visualization.events.addListener(wrapper, 'ready', onReady); wrapper.draw(); // Never called function uselessHandler() { alert("I am never called!"); } function onReady() { google.visualization.events.addListener(wrapper.getChart(), 'onmouseover', usefulHandler); } // Called function usefulHandler() { alert("Mouseover event!"); } }
Hàm dựng
ChartWrapper(opt_spec)
- opt_spec
- [Không bắt buộc] – Một đối tượng JSON xác định biểu đồ hoặc một phiên bản chuỗi tuần tự của đối tượng đó. Định dạng của đối tượng này được hiển thị trong tài liệu drawChart(). Nếu không được chỉ định, bạn phải đặt tất cả thuộc tính thích hợp bằng các phương thức set... mà đối tượng này hiển thị.
Phương pháp
ChartWrapper hiện các phương thức bổ sung sau:
Phương thức | Loại dữ liệu trả về | Mô tả |
---|---|---|
draw(opt_container_ref) |
Không |
Vẽ biểu đồ. Bạn phải gọi phương thức này sau khi bất kỳ thay đổi nào bạn thực hiện cho biểu đồ hoặc dữ liệu để hiển thị các thay đổi.
|
toJSON() |
Chuỗi | Trả về phiên bản chuỗi của biểu diễn JSON của biểu đồ. |
clone() |
ChartWrapper | Trả về bản sao sâu của trình bao bọc biểu đồ. |
getDataSourceUrl() |
Chuỗi | Nếu biểu đồ này lấy dữ liệu từ một nguồn dữ liệu, hãy trả về URL cho nguồn dữ liệu này. Nếu không, trả về giá trị rỗng. |
getDataTable() |
google.Visualization.DataTable |
Nếu biểu đồ này lấy dữ liệu từ
Bất kỳ thay đổi nào mà bạn thực hiện cho đối tượng được trả về sẽ được phản ánh trong biểu đồ vào
lần tiếp theo bạn gọi |
getChartType() |
Chuỗi |
Tên lớp của biểu đồ được bao bọc. Nếu đây là biểu đồ của Google, tên này sẽ không đủ điều kiện cho google.visualization . Ví dụ: nếu đây là biểu đồ Treemap,
biểu đồ sẽ trả về "Treemap" thay vì "google.Visualization.treemap".
|
getChartName() |
Chuỗi | Trả về tên biểu đồ do setChartName() chỉ định. |
getChart() |
Tham chiếu đối tượng biểu đồ |
Trả về tham chiếu đến biểu đồ do ChartWrapper tạo ra, ví dụ:
google.visualization.BarChart
hoặc
google.visualization.ColumnChart
.
Hàm này sẽ trả về giá trị rỗng cho đến khi bạn gọi draw() trên đối tượng ChartWrapper, và sẽ gửi một sự kiện sẵn sàng. Các phương thức được gọi trên đối tượng được trả về sẽ được phản ánh trên trang.
|
getContainerId() |
Chuỗi | Mã phần tử vùng chứa DOM của biểu đồ. |
getQuery() |
Chuỗi | Chuỗi truy vấn cho biểu đồ này, nếu có, truy vấn và một nguồn dữ liệu. |
getRefreshInterval() |
Số | Mọi khoảng thời gian làm mới cho biểu đồ này nếu biểu đồ truy vấn một nguồn dữ liệu. Zero cho biết không làm mới. |
getOption(key, opt_default_val) |
Mọi loại |
Trả về giá trị tùy chọn biểu đồ được chỉ định
|
getOptions() |
Đối tượng | Trả về đối tượng tuỳ chọn cho biểu đồ này. |
getView() |
Đối tượng HOẶC mảng |
Trả về đối tượng trình khởi chạy DataView , ở cùng định dạng với dataview.toJSON() hoặc một loạt các đối tượng như vậy.
|
setDataSourceUrl(url) |
Không | Đặt URL của một nguồn dữ liệu để dùng cho biểu đồ này. Nếu bạn cũng đặt bảng dữ liệu cho đối tượng này, thì URL nguồn dữ liệu sẽ bị bỏ qua. |
setDataTable(table) |
Không | Đặt DataTable cho biểu đồ. Truyền một trong những giá trị sau: rỗng; một đối tượng DataTable; biểu thị JSON của DataTable; hoặc một mảng theo cú pháp của arrayToDataTable(). |
setChartType(type) |
Không |
Đặt loại biểu đồ. Truyền tên lớp của biểu đồ được bao bọc. Nếu đây là biểu đồ của Google, thì bạn không nên sử dụng biểu đồ google.visualization để đánh giá điều kiện này. Ví dụ: đối với biểu đồ hình tròn, hãy chuyển vào "PieChart".
|
setChartName(name) |
Không | Đặt tên tuỳ ý cho biểu đồ. Biểu đồ này không xuất hiện ở bất cứ đâu trên biểu đồ, trừ phi biểu đồ tuỳ chỉnh được thiết kế để sử dụng một cách rõ ràng. |
setContainerId(id) |
Không | Đặt mã của phần tử DOM chứa biểu đồ. |
setQuery(query_string) |
Không | Đặt một chuỗi truy vấn, nếu biểu đồ này truy vấn một nguồn dữ liệu. Bạn cũng phải đặt URL nguồn dữ liệu nếu chỉ định giá trị này. |
setRefreshInterval(interval) |
Không | Đặt khoảng thời gian làm mới cho biểu đồ này nếu biểu đồ truy vấn một nguồn dữ liệu. Bạn cũng phải đặt một URL nguồn dữ liệu nếu chỉ định giá trị này. Zero cho biết không làm mới. |
setOption(key, value) |
Không |
Đặt một giá trị tuỳ chọn biểu đồ, trong đó khoá là tên tuỳ chọn và giá trị là giá trị. Để bỏ thiết lập một tuỳ chọn, hãy truyền giá trị rỗng vào giá trị này. Xin lưu ý rằng khoá có thể là tên đủ điều kiện, chẳng hạn như 'vAxis.title' .
|
setOptions(options_obj) |
Không | Đặt một đối tượng tùy chọn hoàn chỉnh cho biểu đồ. |
setView(view_spec) |
Không |
Đặt một đối tượng trình khởi chạy DataView , đóng vai trò là bộ lọc đối với dữ liệu cơ bản. Trình bao bọc biểu đồ phải có dữ liệu cơ bản từ DataTable hoặc nguồn dữ liệu để áp dụng
chế độ xem này. Bạn có thể truyền một chuỗi hoặc đối tượng khởi tạo DataView , tương tự như đối tượng do dataview.toJSON() trả về. Bạn cũng có thể truyền một mảng đối tượng khởi tạo DataView , trong trường hợp đó, DataView đầu tiên trong mảng sẽ được áp dụng cho dữ liệu cơ bản để tạo một bảng dữ liệu mới, và DataView thứ hai được áp dụng cho bảng dữ liệu từ việc áp dụng DataView đầu tiên, v.v.
|
Sự kiện
Đối tượng ChartWrapper sẽ gửi các sự kiện sau. Xin lưu ý rằng bạn phải gọi
ChartWrapper.draw()
trước khi gửi bất kỳ sự kiện nào.
Tên | Mô tả | Thuộc tính |
---|---|---|
error |
Được kích hoạt khi xảy ra lỗi khi cố gắng hiển thị biểu đồ. | mã nhận dạng, tin nhắn |
ready |
Biểu đồ đã sẵn sàng cho các lệnh gọi phương thức bên ngoài. Nếu muốn tương tác với biểu đồ và gọi các phương thức sau khi vẽ, bạn nên thiết lập trình nghe cho sự kiện này trước khi gọi phương thức draw và chỉ gọi các phương thức này sau khi sự kiện được kích hoạt.
|
Không |
select |
Được kích hoạt khi người dùng nhấp vào một thanh hoặc chú giải. Khi bạn chọn một phần tử biểu đồ, ô tương ứng trong bảng dữ liệu sẽ được chọn; khi một chú giải được chọn, cột tương ứng trong bảng dữ liệu sẽ được chọn. Để tìm hiểu những mục bạn đã chọn, hãy gọi
ChartWrapper.getChart().
getSelection() . Lưu ý rằng thao tác này sẽ chỉ được gửi
khi loại biểu đồ cơ bản gửi một sự kiện lựa chọn.
|
Không |
Ví dụ:
Hai đoạn mã sau sẽ tạo ra một biểu đồ dạng đường tương đương. Ví dụ đầu tiên sử dụng ký hiệu cố định JSON để xác định biểu đồ; ví dụ thứ hai sử dụng phương thức ChartWrapper để đặt các giá trị này.
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>Google Visualization API Sample</title> <!-- One script tag loads all the required libraries! --> <script type="text/javascript" src='https://www.gstatic.com/charts/loader.js'></script> <script> google.charts.load('current); google.charts.setOnLoadCallback(drawVisualization); function drawVisualization() { var wrap = new google.visualization.ChartWrapper({ 'chartType':'LineChart', 'dataSourceUrl':'http://spreadsheets.google.com/tq?key=pCQbetd-CptGXxxQIG7VFIQ&pub=1', 'containerId':'visualization', 'query':'SELECT A,D WHERE D > 100 ORDER BY D', 'options': {'title':'Population Density (people/km^2)', 'legend':'none'} }); wrap.draw(); } </script> </head> <body> <div id="visualization" style="height: 400px; width: 400px;"></div> </body> </html>
Biểu đồ này hiện đang sử dụng phương thức setter:
<!DOCTYPE html> <html> <head> <meta http-equiv='content-type' content='text/html; charset=utf-8'/> <title>Google Visualization API Sample</title> <!-- One script tag loads all the required libraries! --> <script type="text/javascript" src='https://www.gstatic.com/charts/loader.js'></script> <script type="text/javascript"> google.charts.load('current'); google.charts.setOnLoadCallback(drawVisualization); function drawVisualization() { // Define the chart using setters: var wrap = new google.visualization.ChartWrapper(); wrap.setChartType('LineChart'); wrap.setDataSourceUrl('http://spreadsheets.google.com/tq?key=pCQbetd-CptGXxxQIG7VFIQ&pub=1'); wrap.setContainerId('visualization'); wrap.setQuery('SELECT A,D WHERE D > 100 ORDER BY D'); wrap.setOptions({'title':'Population Density (people/km^2)', 'legend':'none'}); wrap.draw(); } </script> </head> <body> <div id='visualization' style='height: 400px; width: 400px;'></div> </body> </html>
Lớp ChartEditor
Lớp ChartEditor
được dùng để mở hộp thoại trong trang cho phép người dùng nhanh chóng tuỳ chỉnh hình ảnh trực quan.
Cách sử dụng ChartEditor:
-
Tải gói
charteditor
. Tronggoogle.charts.load()
, tải gói 'Charteditor'. Bạn không cần tải gói cho loại biểu đồ mà bạn hiển thị trong trình chỉnh sửa; trình chỉnh sửa biểu đồ sẽ tải bất kỳ gói nào cho bạn khi cần. -
Tạo một đối tượng
ChartWrapper
xác định biểu đồ để người dùng tùy chỉnh. Biểu đồ này sẽ hiển thị trong hộp thoại và người dùng sử dụng trình chỉnh sửa để thiết kế lại biểu đồ, thay đổi loại biểu đồ hoặc thậm chí thay đổi dữ liệu nguồn. -
Tạo một thực thể mới của ChartEditor và đăng ký nghe sự kiện "ok". Sự kiện này được gửi khi người dùng nhấp vào nút "OK" trên hộp thoại. Khi nhận được, bạn nên gọi
ChartEditor.getChartWrapper()
để truy xuất biểu đồ do người dùng sửa đổi. -
Gọi
ChartEditor.openDialog()
, truyền vàoChartWrapper
. Thao tác này sẽ mở hộp thoại. Các nút hộp thoại cho phép người dùng đóng trình chỉnh sửa. Bản saoChartEditor
này có sẵn miễn là trong phạm vi; bản sao này không tự động bị huỷ sau khi người dùng đóng hộp thoại. - Để cập nhật biểu đồ trong mã, hãy gọi
setChartWrapper()
.
Phương pháp
Phương thức | Giá trị trả về | Mô tả |
---|---|---|
openDialog(chartWrapper, opt_options) |
null |
Mở trình chỉnh sửa biểu đồ dưới dạng hộp thoại nhúng trên trang. Hàm này trả về
ngay; hộp thoại sẽ không đóng. Nếu không mất phạm vi của thực thể, bạn có thể gọi lại
|
getChartWrapper() |
ChartWrapper |
Trả về ChartWrapper đại diện cho biểu đồ, với các sửa đổi của người dùng. |
setChartWrapper(chartWrapper) |
null |
Hãy sử dụng phương pháp này để cập nhật biểu đồ đã kết xuất trên trình chỉnh sửa.
ChartWrapper – Đối tượng |
closeDialog() |
null | Đóng hộp thoại trình chỉnh sửa biểu đồ. |
Tùy chọn
Trình chỉnh sửa biểu đồ hỗ trợ các tùy chọn sau:
Tên | Loại | Mặc định | Mô tả |
---|---|---|---|
dataSourceInput |
Ô điều khiển phần tử hoặc "urlbox" | null |
Dùng tuỳ chọn này để cho phép người dùng chỉ định nguồn dữ liệu cho biểu đồ. Thuộc tính này có thể có một trong hai giá trị:
|
Sự kiện
Trình chỉnh sửa biểu đồ gửi những sự kiện sau:
Tên | Mô tả | Thuộc tính |
---|---|---|
ok |
Được kích hoạt khi người dùng nhấp vào nút "OK" trên hộp thoại. Sau khi nhận được
phương thức này, bạn nên gọi getChartWrapper() để truy xuất biểu đồ do người dùng định cấu hình.
|
không có |
cancel |
Được kích hoạt khi người dùng nhấp vào nút "Hủy" trên hộp thoại. | không có |
Ví dụ:
Mã mẫu sau đây sẽ mở ra một hộp thoại của trình chỉnh sửa biểu đồ có biểu đồ dạng đường được điền sẵn. Nếu người dùng nhấp vào "OK", biểu đồ đã chỉnh sửa sẽ được lưu vào <div>
được chỉ định trên trang.
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title> Google Visualization API Sample </title> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load('current', {packages: ['charteditor']}); </script> <script type="text/javascript"> google.charts.setOnLoadCallback(loadEditor); var chartEditor = null; function loadEditor() { // Create the chart to edit. var wrapper = new google.visualization.ChartWrapper({ 'chartType':'LineChart', 'dataSourceUrl':'http://spreadsheets.google.com/tq?key=pCQbetd-CptGXxxQIG7VFIQ&pub=1', 'query':'SELECT A,D WHERE D > 100 ORDER BY D', 'options': {'title':'Population Density (people/km^2)', 'legend':'none'} }); chartEditor = new google.visualization.ChartEditor(); google.visualization.events.addListener(chartEditor, 'ok', redrawChart); chartEditor.openDialog(wrapper, {}); } // On "OK" save the chart to a <div> on the page. function redrawChart(){ chartEditor.getChartWrapper().draw(document.getElementById('vis_div')); } </script> </head> <body> <div id="vis_div" style="height: 400px; width: 600px;"></div> </body> </html>
Phương pháp thao túng dữ liệu
Không gian tên google.visualization.data
chứa các phương thức tĩnh để thực hiện các thao tác giống như SQL trên các đối tượng DataTable
, chẳng hạn như kết hợp các phương thức đó hoặc nhóm theo giá trị cột.
Không gian tên google.visualization.data
cho thấy các phương thức sau:
Phương thức | Mô tả |
---|---|
google.visualization.data.group
|
Thực hiện hành động nhóm SQL bằng cách trả về bảng được nhóm theo giá trị trong cột được chỉ định. |
google.visualization.data.join
|
Kết hợp hai bảng dữ liệu trên một hoặc nhiều cột chính. |
group()
Lấy đối tượng DataTable
đã điền sẵn và thực hiện thao tác Groups BY SQL,
trả về một bảng có các hàng được nhóm theo các giá trị cột được chỉ định. Lưu ý rằng thao tác này không sửa đổi dữ liệu đầu vào DataTable
.
Bảng được trả về bao gồm một hàng cho mỗi tổ hợp giá trị trong các cột chính được chỉ định. Mỗi hàng bao gồm các cột chính, cùng với một cột có giá trị cột tổng hợp trên tất cả các hàng khớp với tổ hợp phím (ví dụ: tổng hoặc tổng của tất cả các giá trị trong cột được chỉ định).
Vùng chứa tên google.visualization.data
bao gồm một số giá trị tổng hợp hữu ích (ví dụ: tổng và số lượng), nhưng bạn có thể xác định giá trị của riêng mình (ví dụ: standardDeviation hoặc giâyhigh). Chúng tôi cung cấp hướng dẫn về cách tự xác định trang web tổng hợp sau phần mô tả phương thức.
Cú pháp
google.visualization.data.group(data_table, keys, columns)
- bảng_dữ_liệu
-
Đầu vào
DataTable
. Bạn sẽ không thể sửa đổi thông tin này bằng cách gọigroup()
. - khoá
-
Một mảng gồm số và/hoặc đối tượng chỉ định các cột cần nhóm theo. Bảng kết quả bao gồm mọi cột trong mảng này cũng như mọi cột trong cột. Nếu là số, đây sẽ là chỉ mục cột của đầu vào
DataTable
để nhóm. Nếu một đối tượng có thể bao gồm hàm có thể sửa đổi cột được chỉ định (ví dụ: thêm 1 vào giá trị trong cột đó). Đối tượng phải có các thuộc tính sau:- cột – Một số là chỉ mục cột từ dt để áp dụng phép biến đổi.
- biến bổ trợ – Một hàm chấp nhận một giá trị (giá trị ô trong cột đó cho mỗi hàng) và trả về giá trị được sửa đổi. Hàm này dùng để sửa đổi giá trị cột để hỗ trợ việc phân nhóm: ví dụ: bằng cách gọi một hàm hasQuarter tính toán một quý từ cột ngày, để API có thể nhóm các hàng theo quý. Giá trị đã tính toán sẽ hiển thị trong các cột chính trong bảng được trả về. Hàm này có thể được khai báo nội tuyến bên trong đối tượng hoặc có thể là hàm mà bạn xác định ở nơi khác trong mã (phải nằm trong phạm vi gọi). API này cung cấp một hàm sửa đổi đơn giản. Sau đây là hướng dẫn về cách tạo hàm riêng của bạn và hữu ích hơn. Bạn phải biết loại dữ liệu mà hàm này có thể chấp nhận và chỉ gọi loại dữ liệu đó trên các cột thuộc loại đó. Bạn cũng phải biết loại dữ liệu trả về của hàm này và khai báo hàm trong thuộc tính type được mô tả ở phần tiếp theo.
- loại – Loại được hàm biến bổ trợ trả về. Đây phải là tên loại chuỗi JavaScript, ví dụ: "number" hoặc "boolean".
-
label – [Không bắt buộc] Một nhãn chuỗi để chỉ định cột này trong
DataTable
được trả về. -
id – [Không bắt buộc] Mã nhận dạng chuỗi để chỉ định cột này trong
DataTable
được trả về.
Ví dụ:[0]
,[0,2]
,[0,{column:1, modifier:myPlusOneFunc, type:'number'},2]
- cột
-
[Không bắt buộc] Cho phép bạn chỉ định những cột ngoài cột chính để đưa vào bảng kết quả. Vì tất cả các hàng trong nhóm hàng đều được nén thành một hàng đầu ra, nên bạn phải xác định giá trị cần hiển thị cho nhóm hàng đó. Ví dụ: bạn có thể chọn hiển thị giá trị cột từ hàng đầu tiên trong tập hợp hoặc trung bình của tất cả các hàng trong nhóm đó.
cột là một mảng các đối tượng có các thuộc tính sau:
- cột – Một số chỉ định chỉ mục của cột cần hiển thị.
- tổng hợp – Một hàm chấp nhận một mảng tất cả giá trị của cột này trong nhóm hàng này và trả về một giá trị duy nhất để hiển thị trong hàng kết quả. Giá trị trả về phải thuộc loại mà thuộc tính type của đối tượng chỉ định. Dưới đây là thông tin chi tiết về cách tạo hàm tổng hợp của riêng bạn. Bạn phải biết loại dữ liệu mà phương thức này chấp nhận và chỉ gọi phương thức đó trên các cột thuộc loại thích hợp. API này cung cấp một số hàm tổng hợp hữu ích. Hãy xem phần Hàm tổng hợp đã cung cấp bên dưới để biết danh sách hoặc cách Tạo hàm tổng hợp để tìm hiểu cách viết hàm tổng hợp của riêng bạn.
- loại – Loại trả về của hàm tổng hợp. Đây phải là tên loại chuỗi JavaScript, ví dụ: "number" hoặc "boolean".
- label – [Không bắt buộc] Một nhãn chuỗi để áp dụng cho cột này trong bảng được trả về.
- id – [Không bắt buộc] Mã nhận dạng chuỗi để áp dụng cho cột này trong bảng được trả về.
Giá trị trả về
DataTable
có một cột cho mỗi cột được liệt kê trong khoá và một cột cho mỗi cột được liệt kê trong cột. Bảng được sắp xếp theo các hàng chính, từ trái sang phải.
Ví dụ
// This call will group the table by column 0 values. // It will also show column 3, which will be a sum of // values in that column for that row group. var result = google.visualization.data.group( dt, [0], [{'column': 3, 'aggregation': google.visualization.data.sum, 'type': 'number'}] ); *Input table* 1 'john' 'doe' 10 1 'jane' 'doe' 100 3 'jill' 'jones' 50 3 'jack' 'jones' 75 5 'al' 'weisenheimer' 500 *Output table* 1 110 3 125 5 500
Hàm sửa đổi được cung cấp
API này cung cấp các hàm bổ trợ sau mà bạn có thể truyền vào các khoá. Thông số modifier để tùy chỉnh hành vi nhóm.
Chức năng | Loại mảng đầu vào | Loại dữ liệu trả về | Mô tả |
---|---|---|---|
google.visualization.data.month |
Ngày | number | Khi chọn ngày, giá trị này sẽ trả về giá trị tháng không dựa trên giá trị (0, 1, 2, v.v.). |
Hàm tổng hợp đã cung cấp
API này cung cấp các hàm tổng hợp sau mà bạn có thể truyền vào cột. mảng tham số tổng hợp.
Chức năng | Loại mảng đầu vào | Loại dữ liệu trả về | Mô tả |
---|---|---|---|
google.visualization.data.avg |
number | number | Giá trị trung bình của mảng được truyền vào. |
google.visualization.data.count |
mọi loại | number | Số hàng trong nhóm. Các giá trị rỗng và trùng lặp đều được tính. |
google.visualization.data.max |
số, chuỗi, ngày | số, chuỗi, ngày, rỗng | Giá trị lớn nhất trong mảng. Đối với chuỗi, đây là mục đầu tiên trong danh sách được sắp xếp theo từ vựng; đối với các giá trị Ngày, đó là ngày mới nhất. Giá trị rỗng sẽ bị bỏ qua. Trả về giá trị rỗng nếu không có giá trị tối đa. |
google.visualization.data.min |
số, chuỗi, ngày | số, chuỗi, ngày, rỗng | Giá trị tối thiểu trong mảng. Đối với chuỗi, đây là mục cuối cùng trong danh sách được sắp xếp theo từ vựng; đối với các giá trị Ngày, đó là ngày sớm nhất. Giá trị rỗng sẽ bị bỏ qua. Trả về giá trị rỗng nếu không có giá trị tối thiểu. |
google.visualization.data.sum |
number | number | Tổng của tất cả các giá trị trong mảng. |
Tạo hàm sửa đổi
Bạn có thể tạo hàm sửa đổi để thực hiện một biến đổi khóa đơn giản trước khi
hàm group()
nhóm các hàng của bạn. Hàm này nhận một giá trị ô duy nhất, thực hiện thao tác trên giá trị đó (ví dụ: thêm 1 vào giá trị) và trả về giá trị đó. Loại đầu vào và trả về không cần cùng loại, nhưng phương thức gọi phải biết loại đầu vào và đầu ra. Dưới đây là ví dụ về một hàm chấp nhận một ngày và trả về quý:
// Input type: Date // Return type: number (1-4) function getQuarter(someDate) { return Math.floor(someDate.getMonth()/3) + 1; }
Tạo hàm tổng hợp
Bạn có thể tạo một hàm tổng hợp chấp nhận một tập hợp giá trị cột trong một nhóm hàng và trả về một số duy nhất: ví dụ: trả về số lượng hoặc giá trị trung bình. Dưới đây là cách triển khai hàm tổng hợp số lượng đã cung cấp. Hàm này trả về số lượng hàng trong nhóm hàng:
// Input type: Array of any type // Return type: number function count(values) { return values.length; }
join()
Phương thức này kết hợp 2 bảng dữ liệu (đối tượng DataTable
hoặc DataView
) vào một bảng kết quả duy nhất, tương tự như câu lệnh SQL JOIN. Bạn chỉ định một hoặc nhiều cặp cột
(cột khoá) giữa hai bảng và bảng đầu ra bao gồm các hàng theo phương thức
liên kết mà bạn chỉ định: chỉ những hàng mà cả hai khoá khớp; tất cả các hàng từ một bảng; hoặc tất cả
các hàng từ cả hai bảng, cho dù các khoá có khớp hay không. Bảng kết quả chỉ bao gồm các cột
chính và mọi cột bổ sung mà bạn chỉ định. Lưu ý rằng dt2 không được có khoá trùng lặp, nhưng dt1 có thể. Thuật ngữ "khoá" có nghĩa là sự kết hợp của tất cả các giá trị cột chính, không phải giá trị cột khoá cụ thể; vì vậy, nếu một hàng có giá trị ô A | B | C và các cột
0 và 1 là cột chính, thì khoá cho hàng đó là AB.
Cú pháp
google.visualization.data.join(dt1, dt2, joinMethod, keys, dt1Columns, dt2Columns);
- dt1
- Một
DataTable
đã điền sẵn để tham gia bằng dt2. - dt2
-
Một
DataTable
đã điền sẵn để tham gia bằng dt1. Bảng này không được có nhiều khóa giống nhau (trong đó một khóa là sự kết hợp của các giá trị cột khóa). - joinMethod
-
Một chuỗi chỉ định loại liên kết. Nếu dt1 có nhiều hàng khớp với hàng dt2, thì bảng đầu ra sẽ bao gồm tất cả các hàng dt1 phù hợp. Chọn một trong các giá trị sau:
- "full" - Bảng đầu ra bao gồm tất cả các hàng từ cả hai bảng, bất kể các khoá có khớp hay không. Những hàng không khớp sẽ có mục nhập ô rỗng; các hàng trùng khớp sẽ được liên kết.
- "bên trong" – Phần kết hợp đầy đủ được lọc để chỉ bao gồm các hàng mà các khoá đó khớp.
- "left" – Bảng đầu ra bao gồm tất cả các hàng từ dt1, có hoặc không có hàng nào khớp trong dt2.
- "right" - bảng kết quả bao gồm tất cả các hàng từ dt2, có hoặc không có hàng nào khớp từ dt1.
- khoá
-
Một mảng các cột chính để so sánh từ cả hai bảng. Mỗi cặp là một mảng hai phần tử, đầu tiên là khóa trong dt1, thứ hai là khóa trong dt2. Mảng này có thể chỉ định các cột theo chỉ mục, mã nhận dạng hoặc nhãn, hãy xem
getColumnIndex
.
Các cột phải thuộc cùng một loại trong cả hai bảng. Tất cả các khoá đã chỉ định phải khớp theo quy tắc mà joinMethod đưa ra để chứa một hàng từ bảng. Các cột chính luôn có trong bảng đầu ra. Chỉ có dt1 là bảng bên trái có thể chứa các khoá trùng lặp; các khoá trong dt2 phải là duy nhất. Thuật ngữ "khoá" ở đây có nghĩa là một tập hợp các cột chính, không phải giá trị cột riêng lẻ. Ví dụ: nếu các cột chính của bạn là A và B, thì bảng sau sẽ chỉ có các giá trị khóa duy nhất (và do đó có thể được sử dụng dưới dạng dt2):A B Jen Đỏ Jen Xanh dương Fred Đỏ [[0,0], [2,1]]
so sánh các giá trị từ cột đầu tiên trong cả hai bảng cũng như cột thứ ba từ dt1 với cột thứ hai từ dt2. - Cột 1t
-
Một mảng các cột từ dt1 để đưa vào bảng đầu ra, ngoài các cột khoá của dt1. Mảng này có thể chỉ định các cột theo chỉ mục, mã nhận dạng hoặc nhãn, hãy xem phần
getColumnIndex
. - Cột 2t
-
Một mảng các cột từ dt2 để đưa vào bảng đầu ra, ngoài các cột khoá của dt2. Mảng này có thể chỉ định các cột theo chỉ mục, mã nhận dạng hoặc nhãn, hãy xem phần
getColumnIndex
.
Giá trị trả về
DataTable
có các cột chính, dt1Column và dt2Column. Bảng này được sắp xếp theo các cột chính, từ trái sang phải. Khi joinMethod là "bên trong", thì tất cả các ô chính sẽ được điền sẵn. Đối với các phương thức liên kết khác, nếu không tìm thấy khoá trùng khớp, bảng sẽ có giá trị rỗng cho mọi ô khoá không khớp.
Ví dụ
*Tables* dt1 dt2 bob | 111 | red bob | 111 | point bob | 111 | green ellyn | 222 | square bob | 333 | orange jane | 555 | circle fred | 555 | blue jane | 777 | triangle jane | 777 | yellow fred | 666 | dodecahedron * Note that right table has duplicate Jane entries, but the key we will use is * columns 0 and 1. The left table has duplicate key values, but that is * allowed. *Inner join* google.visualization.data.join(dt1, dt2, 'inner', [[0,0],[1,1]], [2], [2]); bob | 111 | red | point bob | 111 | green | point jane | 777 | yellow | triangle * Note that both rows from dt1 are included and matched to * the equivalent dt2 row. *Full join* google.visualization.data.join(dt1, dt2, 'full', [[0,0],[1,1]], [2], [2]); bob | 111 | red | point bob | 111 | green | point bob | 333 | orange | null ellyn | 222 | null | square fred | 555 | blue | null fred | 666 | null | dodecahedron jane | 555 | null | circle jane | 777 | yellow | triangle *Left join* google.visualization.data.join(dt1, dt2, 'left', [[0,0],[1,1]], [2], [2]); bob | 111 | red | point bob | 111 | green | point bob | 333 | orange | null fred | 555 | blue | null jane | 777 | yellow | triangle *Right join* google.visualization.data.join(dt1, dt2, 'right', [[0,0],[1,1]], [2], [2]); bob | 111 | red | point bob | 111 | green | point ellyn | 222 | null | square fred | 666 | null | dodecahedron jane | 555 | null | circle jane | 777 | yellow | triangle
Bộ định dạng
API Google Hình ảnh cung cấp các bộ định dạng có thể dùng để định dạng lại dữ liệu trong một hình ảnh trực quan. Các bộ định dạng này thay đổi giá trị đã định dạng của cột được chỉ định trong tất cả các hàng. Lưu ý:
- Bộ định dạng chỉ sửa đổi các giá trị được định dạng, không phải các giá trị cơ bản. Ví dụ: giá trị hiển thị sẽ là "$1,000.00" nhưng giá trị cơ bản vẫn là "1000".
- Các bộ định dạng chỉ ảnh hưởng đến một cột tại một thời điểm; để định dạng lại nhiều cột, hãy áp dụng một trình định dạng cho mỗi cột mà bạn muốn thay đổi.
- Nếu bạn cũng sử dụng các bộ định dạng do người dùng xác định, thì một số bộ định dạng của Google Visual sẽ ghi đè tất cả các bộ định dạng do người dùng xác định.
- Lấy đối tượng
DataTable
được điền sẵn. - Đối với mỗi cột mà bạn muốn định dạng lại:
- Tạo một đối tượng chỉ định tất cả các tuỳ chọn cho trình định dạng của bạn. Đây là một đối tượng JavaScript cơ bản với một tập hợp các thuộc tính và giá trị. Hãy xem tài liệu về trình định dạng để biết những thuộc tính được hỗ trợ. (Không bắt buộc, bạn có thể truyền vào một đối tượng ký hiệu cố định dạng đối tượng chỉ định các tùy chọn.)
- Tạo trình định dạng, truyền đối tượng tuỳ chọn vào.
-
Gọi
formatter
.format(table, colIndex)
, truyền vàoDataTable
và số cột (dựa trên 0) của dữ liệu cần định dạng lại. Xin lưu ý rằng bạn chỉ có thể áp dụng một trình định dạng duy nhất cho mỗi cột; việc áp dụng trình định dạng thứ hai sẽ chỉ ghi đè tác động của trình định dạng đầu tiên.
Lưu ý quan trọng: Nhiều trình định dạng yêu cầu thẻ HTML để hiển thị định dạng đặc biệt; nếu hình ảnh của bạn hỗ trợ tùy chọnallowHtml
thì bạn nên đặt thành đúng.
Định dạng thực tế được áp dụng cho dữ liệu được lấy từ ngôn ngữ mà API đã được tải. Để biết thêm thông tin, hãy xem phần tải biểu đồ bằng một ngôn ngữ cụ thể.
Quan trọng: Bạn chỉ có thể sử dụng bộ định dạng với một DataTable
; các định dạng này không dùng được với DataView
(đối tượng DataView
chỉ có thể đọc).
Dưới đây là các bước chung để sử dụng trình định dạng:
Dưới đây là ví dụ về cách thay đổi các giá trị ngày được định dạng của cột ngày để sử dụng định dạng ngày dài ("ngày 1 tháng 1 năm 2009"):
var data = new google.visualization.DataTable(); data.addColumn('string', 'Employee Name'); data.addColumn('date', 'Start Date'); data.addRows(3); data.setCell(0, 0, 'Mike'); data.setCell(0, 1, new Date(2008, 1, 28)); data.setCell(1, 0, 'Bob'); data.setCell(1, 1, new Date(2007, 5, 1)); data.setCell(2, 0, 'Alice'); data.setCell(2, 1, new Date(2006, 7, 16)); // Create a formatter. // This example uses object literal notation to define the options. var formatter = new google.visualization.DateFormat({formatType: 'long'}); // Reformat our data. formatter.format(data, 1); // Draw our data var table = new google.visualization.Table(document.getElementById('dateformat_div')); table.draw(data, {showRowNumber: true});
Hầu hết bộ định dạng đều hiển thị hai phương thức sau:
Phương thức | Mô tả |
---|---|
google.visualization.formatter_name(options) |
Hàm khởi tạo, trong đó formatter_name là tên của trình định dạng specfic.
// Object literal technique var formatter = new google.visualization.DateFormat({formatType: 'long', timeZone: -5}); // Equivalent property setting technique var options = new Object(); options['formatType'] = 'long'; options['timeZone'] = -5; var formatter = new google.visualization.DateFormat(options); |
format(data, colIndex) |
Định dạng lại dữ liệu trong cột được chỉ định.
|
API Hình ảnh của Google cung cấp các định dạng sau:
Tên trình định dạng | Mô tả |
---|---|
Định dạng mũi tên | Thêm mũi tên lên hoặc xuống, cho biết giá trị ô nằm trên hay dưới giá trị được chỉ định. |
Định dạng thanh | Thêm một thanh màu, hướng và màu của màu đó cho biết giá trị ô đang cao hơn hay thấp hơn một giá trị đã chỉ định. |
ColorFormat (Định dạng màu) | Tô màu một ô theo giá trị có nằm trong dải ô đã chỉ định hay không. |
Định dạng ngày | Định dạng giá trị Date hoặc DateTime theo một số cách khác nhau, bao gồm "ngày 1 tháng 1 năm 2009", "1/1/09" và "ngày 1 tháng 1 năm 2009". |
NumberFormat (Số định dạng số) | Định dạng các khía cạnh khác nhau của giá trị số. |
PatternFormat | Ghép các giá trị ô trên cùng một hàng vào một ô được chỉ định, cùng với văn bản tùy ý. |
Định dạng mũi tên
Thêm mũi tên lên hoặc xuống vào một ô số, tuỳ thuộc vào việc giá trị đó cao hơn hay thấp hơn một giá trị cơ sở được chỉ định. Nếu bằng với giá trị cơ sở, sẽ không có mũi tên nào hiển thị.
Tùy chọn
ArrowFormat
hỗ trợ các tuỳ chọn sau đây, được truyền vào hàm khởi tạo:
Lựa chọn | Mô tả |
---|---|
base |
Số cho biết giá trị cơ sở, dùng để so sánh với giá trị của ô. Nếu giá trị ô cao hơn, ô sẽ bao gồm mũi tên lên màu xanh lục; nếu giá trị ô thấp hơn, ô sẽ bao gồm mũi tên xuống màu đỏ; nếu giống nhau, không có mũi tên. |
Mã mẫu
var data = new google.visualization.DataTable(); data.addColumn('string', 'Department'); data.addColumn('number', 'Revenues Change'); data.addRows([ ['Shoes', {v:12, f:'12.0%'}], ['Sports', {v:-7.3, f:'-7.3%'}], ['Toys', {v:0, f:'0%'}], ['Electronics', {v:-2.1, f:'-2.1%'}], ['Food', {v:22, f:'22.0%'}] ]); var table = new google.visualization.Table(document.getElementById('arrowformat_div')); var formatter = new google.visualization.ArrowFormat(); formatter.format(data, 1); // Apply formatter to second column table.draw(data, {allowHtml: true, showRowNumber: true});
Định dạng thanh
Thêm một thanh màu vào một ô số cho biết giá trị của ô đó cao hơn hay thấp hơn một giá trị cơ sở đã chỉ định.
Tùy chọn
BarFormat
hỗ trợ các tuỳ chọn sau đây, được truyền vào hàm khởi tạo:
Lựa chọn | Ví dụ:Mô tả |
---|---|
base |
Số là giá trị cơ sở để so sánh giá trị của ô. Nếu giá trị ô cao hơn, giá trị này sẽ được vẽ ở bên phải của đế; nếu giá trị thấp hơn, giá trị này sẽ được vẽ ở bên trái. Giá trị mặc định là 0. |
colorNegative |
Một chuỗi cho biết phần giá trị âm của thanh. Các giá trị có thể là "màu đỏ", "màu xanh lục" và "màu xanh dương"; giá trị mặc định là "màu đỏ". |
colorPositive |
Một chuỗi cho biết màu của phần giá trị dương trong thanh. Các giá trị có thể là "màu đỏ", "màu xanh lục" và "màu xanh dương". Mặc định là 'blue'. |
drawZeroLine |
Boolean cho biết có vẽ đường cơ sở tối 1 pixel hay không khi có giá trị âm. Đường thẳng tối ở đó giúp nâng cao khả năng quét trực quan của các thanh. Giá trị mặc định là 'false'. |
max |
Giá trị số tối đa cho phạm vi thanh. Giá trị mặc định là giá trị cao nhất trong bảng. |
min |
Giá trị số tối thiểu cho phạm vi thanh. Giá trị mặc định là giá trị thấp nhất trong bảng. |
showValue |
Nếu là true, sẽ hiển thị các giá trị và thanh; nếu là false, chỉ hiển thị các thanh. Giá trị mặc định là true. |
width |
Độ dày của mỗi thanh, tính bằng pixel. Giá trị mặc định là 100. |
Mã mẫu
var data = new google.visualization.DataTable(); data.addColumn('string', 'Department'); data.addColumn('number', 'Revenues'); data.addRows([ ['Shoes', 10700], ['Sports', -15400], ['Toys', 12500], ['Electronics', -2100], ['Food', 22600], ['Art', 1100] ]); var table = new google.visualization.Table(document.getElementById('barformat_div')); var formatter = new google.visualization.BarFormat({width: 120}); formatter.format(data, 1); // Apply formatter to second column table.draw(data, {allowHtml: true, showRowNumber: true, width: '100%', height: '100%'});
Định dạng màu
Chỉ định màu cho nền trước hoặc nền của ô số, tùy thuộc vào giá trị của ô. Trình định dạng này là một điểm bất thường, vì trong tham số này không dùng các tuỳ chọn trong hàm khởi tạo. Thay vào đó, bạn nên gọi addRange()
hoặc addGradientRange()
bao nhiêu lần tuỳ thích để thêm dải màu trước khi gọi format()
. Bạn có thể chỉ định màu ở bất kỳ định dạng HTML được chấp nhận nào, chẳng hạn như "đen", "#000000" hoặc "#000".
Phương pháp
ColorFormat
hỗ trợ các phương thức sau:
Phương thức | Mô tả |
---|---|
google.visualization.ColorFormat() |
Hàm khởi tạo. Không nhận đối số nào. |
addRange(from, to, color, bgcolor) |
Chỉ định màu nền trước và/hoặc màu nền cho một ô, tùy thuộc vào giá trị của ô. Bất kỳ ô nào có giá trị trong dải ô từ – đến được chỉ định đều sẽ được gán color và bgcolor. Điều quan trọng là phải nhận ra rằng phạm vi này không bao gồm giá trị, vì việc tạo phạm vi từ 1 đến 1.000 và phạm vi thứ hai từ 1.000 đến 2.000 sẽ không bao gồm giá trị 1.000!
|
addGradientRange(from, to, color, fromBgColor,
toBgColor)
|
Chỉ định màu nền từ một dải ô, theo giá trị của ô. Màu được điều chỉnh theo tỷ lệ để phù hợp với giá trị của ô trong một phạm vi từ màu ranh giới thấp hơn đến màu đường viền trên. Lưu ý là phương thức này không thể so sánh các giá trị chuỗi như
|
format(dataTable, columnIndex) |
Phương thức format() chuẩn để áp dụng định dạng cho cột được chỉ định. |
Mã mẫu
var data = new google.visualization.DataTable(); data.addColumn('string', 'Department'); data.addColumn('number', 'Revenues'); data.addRows([ ['Shoes', 10700], ['Sports', -15400], ['Toys', 12500], ['Electronics', -2100], ['Food', 22600], ['Art', 1100] ]); var table = new google.visualization.Table(document.getElementById('colorformat_div')); var formatter = new google.visualization.ColorFormat(); formatter.addRange(-20000, 0, 'white', 'orange'); formatter.addRange(20000, null, 'red', '#33ff33'); formatter.format(data, 1); // Apply formatter to second column table.draw(data, {allowHtml: true, showRowNumber: true, width: '100%', height: '100%'});
Định dạng ngày
Định dạng giá trị Date
của JavaScript theo nhiều cách, bao gồm "ngày 1 tháng 1 năm 2016", "ngày 1 tháng 1 năm 2016" và "ngày 1 tháng 1 năm 2016".
Tùy chọn
DateFormat
hỗ trợ các tuỳ chọn sau đây, được truyền vào hàm khởi tạo:
Lựa chọn | Mô tả |
---|---|
formatType |
Tùy chọn định dạng nhanh cho ngày. Các giá trị chuỗi sau đây được hỗ trợ, định dạng lại ngày 28 tháng 2 năm 2016 như sau:
Bạn không thể chỉ định cả |
pattern |
Mẫu định dạng tuỳ chỉnh sẽ áp dụng cho giá trị, tương tự như định dạng ngày và giờ của ICU.
Ví dụ:
Bạn không thể chỉ định cả |
timeZone |
Múi giờ hiển thị giá trị ngày. Đây là một giá trị số, cho biết GMT +
số múi giờ này (có thể là số âm). Theo mặc định, đối tượng ngày được tạo theo
múi giờ giả định của máy tính tạo múi giờ; tùy chọn này được dùng để hiển thị
giá trị đó ở một múi giờ khác. Ví dụ: nếu bạn tạo một đối tượng Date là 5 giờ chiều trên một máy tính ở Greenwich, Anh và chỉ định múi giờ là -5
(options['timeZone'] = -5 , hoặc Giờ miền Đông Thái Bình Dương ở Hoa Kỳ), thì giá trị
hiển thị sẽ là 12 trưa.
|
Phương pháp
DateFormat
hỗ trợ các phương thức sau:
Phương thức | Mô tả |
---|---|
google.visualization.DateFormat(options) |
Hàm khởi tạo. Hãy xem phần tuỳ chọn ở trên để biết thêm thông tin. |
format(dataTable, columnIndex) |
Phương thức format() chuẩn để áp dụng định dạng cho cột đã chỉ định. |
formatValue(value) |
Trả về giá trị đã định dạng của một giá trị cho trước.
Phương thức này không yêu cầu |
Mã mẫu
function drawDateFormatTable() { var data = new google.visualization.DataTable(); data.addColumn('string', 'Employee Name'); data.addColumn('date', 'Start Date (Long)'); data.addColumn('date', 'Start Date (Medium)'); data.addColumn('date', 'Start Date (Short)'); data.addRows([ ['Mike', new Date(2008, 1, 28, 0, 31, 26), new Date(2008, 1, 28, 0, 31, 26), new Date(2008, 1, 28, 0, 31, 26)], ['Bob', new Date(2007, 5, 1, 0), new Date(2007, 5, 1, 0), new Date(2007, 5, 1, 0)], ['Alice', new Date(2006, 7, 16), new Date(2006, 7, 16), new Date(2006, 7, 16)] ]); // Create three formatters in three styles. var formatter_long = new google.visualization.DateFormat({formatType: 'long'}); var formatter_medium = new google.visualization.DateFormat({formatType: 'medium'}); var formatter_short = new google.visualization.DateFormat({formatType: 'short'}); // Reformat our data. formatter_long.format(data, 1); formatter_medium.format(data,2); formatter_short.format(data, 3); // Draw our data var table = new google.visualization.Table(document.getElementById('dateformat_div')); table.draw(data, {showRowNumber: true, width: '100%', height: '100%'}); }
Tìm hiểu thêm về mẫu ngày
Sau đây là một số thông tin chi tiết khác về các mẫu được hỗ trợ:
Các mẫu tương tự như định dạng ngày và giờ ICU, nhưng các mẫu sau chưa được hỗ trợ: A e D F g Y u w W. Để tránh xung đột với mẫu, bất kỳ văn bản nào bằng chữ bạn muốn xuất hiện trong kết quả phải được đặt trong cặp dấu ngoặc đơn, ngoại trừ dấu nháy đơn mà bạn nên dùng dấu ngoặc kép: ví dụ:
"K 'o''clock.'"
.
Mẫu | Mô tả | Kết quả điểm dữ liệu |
---|---|---|
GG (GG) | Người chỉ định thời đại. | "QC" |
yy hoặc yyyy | . | 1996 |
T2 |
Tháng trong năm. Đối với tháng 1:
|
"Tháng 7" "07" |
ngày | Ngày trong tháng. Các giá trị "d" bổ sung sẽ thêm các số 0 ở đầu. | 10 |
giờ | Giờ trong thang 12 giờ. Các giá trị "h" bổ sung sẽ được thêm các số 0 ở đầu. | 12 |
H | Giờ trong thang điểm 24 giờ. Các giá trị Hk bổ sung sẽ được thêm vào số 0 ở đầu. | 0 |
phút | Số phút trong giờ. Các giá trị "M" bổ sung sẽ được thêm các số 0 ở đầu. | 30 |
s | Số giây trong phút. Giá trị bổ sung sẽ thêm các số 0 ở đầu. | 55 |
CN | Phân số giây. Các giá trị "S" thừa sẽ được thêm vào bên phải bằng số 0. | 978 |
E |
Ngày trong tuần. Kết quả đầu ra cho "Thứ Ba" sau đây:
|
"Thứ Ba" "Thứ Ba" |
a | Sáng/chiều | "PM" |
k | Giờ trong ngày (1~24). Các giá trị "k" bổ sung sẽ thêm các số 0 ở đầu. | 24 |
nghìn | Giờ sáng/chiều (0~11). Các giá trị "k" bổ sung sẽ thêm các số 0 ở đầu. | 0 |
z | Múi giờ. Đối với múi giờ 5, tạo ra "UTC+5" |
"giờ UTC+5" |
Z |
Múi giờ ở định dạng RFC 822. Đối với múi giờ -5: Z, ZZ, ZZZ sản xuất -0500 ZZZZ và các sản phẩm khác tạo ra "GMT -05:00" |
"-0800" "GMT -05:00" |
v | Múi giờ (chung). |
"Etc/GMT-5" |
' | ký tự thoát cho văn bản | "Date='" |
''. | dấu nháy đơn | 'yy' |
Định dạng số
Mô tả cách định dạng các cột dạng số. Các tùy chọn định dạng bao gồm chỉ định ký hiệu tiền tố (chẳng hạn như ký hiệu đô la) hoặc dấu câu để sử dụng làm dấu đánh dấu hàng nghìn.
Tùy chọn
NumberFormat
hỗ trợ các tuỳ chọn sau đây, được truyền vào hàm khởi tạo:
Lựa chọn | Mô tả |
---|---|
decimalSymbol |
Một ký tự để sử dụng làm dấu thập phân. Tùy chọn mặc định là dấu chấm (.). |
fractionDigits |
Một số chỉ định số chữ số hiển thị sau số thập phân. Giá trị mặc định là 2. Nếu bạn chỉ định nhiều chữ số hơn số chứa, thì số này sẽ hiển thị số 0 cho các giá trị nhỏ hơn. Giá trị bị cắt ngắn sẽ được làm tròn (5 được làm tròn). |
groupingSymbol |
Một ký tự dùng để nhóm các chữ số ở bên trái số thập phân thành các bộ ba. Mặc định là dấu phẩy (,). |
negativeColor |
Màu văn bản cho giá trị âm. Không có giá trị mặc định. Giá trị có thể là bất kỳ giá trị màu HTML nào được chấp nhận, chẳng hạn như "màu đỏ" hoặc "#FF0000". |
negativeParens |
Boolean, trong đó true cho biết rằng các giá trị âm phải được đặt trong dấu ngoặc đơn. Mặc định là đúng. |
pattern |
Chuỗi định dạng. Khi được cung cấp, tất cả các tuỳ chọn khác sẽ bị bỏ qua, ngoại trừ
Chuỗi định dạng là một tập hợp con của
nhóm mẫu ICU
.
Ví dụ: |
prefix |
Tiền tố chuỗi cho giá trị, ví dụ: "$". |
suffix |
Hậu tố chuỗi cho giá trị, ví dụ: "%". |
Phương pháp
NumberFormat
hỗ trợ các phương thức sau:
Phương thức | Mô tả |
---|---|
google.visualization.NumberFormat(options) |
Hàm khởi tạo. Hãy xem phần tuỳ chọn ở trên để biết thêm thông tin. |
format(dataTable, columnIndex) |
Phương thức format() chuẩn để áp dụng định dạng cho cột được chỉ định. |
formatValue(value) |
Trả về giá trị đã định dạng của một giá trị cho trước. Phương thức này không yêu cầu |
Mã mẫu
var data = new google.visualization.DataTable(); data.addColumn('string', 'Department'); data.addColumn('number', 'Revenues'); data.addRows([ ['Shoes', 10700], ['Sports', -15400], ['Toys', 12500], ['Electronics', -2100], ['Food', 22600], ['Art', 1100] ]); var table = new google.visualization.Table(document.getElementById('numberformat_div')); var formatter = new google.visualization.NumberFormat( {prefix: '$', negativeColor: 'red', negativeParens: true}); formatter.format(data, 1); // Apply formatter to second column table.draw(data, {allowHtml: true, showRowNumber: true, width: '100%', height: '100%'});
Mẫu định dạng
Cho phép bạn hợp nhất các giá trị của các cột được chỉ định vào một
cột duy nhất cùng với văn bản tuỳ ý. Ví dụ: nếu đã có cột cho tên và cột cho họ, bạn có thể điền vào cột thứ ba bằng {last name}, {first name}. Trình định dạng này không tuân thủ quy ước của hàm khởi tạo và phương thức format()
. Hãy xem phần Phương thức dưới đây để biết hướng dẫn.
Phương pháp
PatternFormat
hỗ trợ các phương thức sau:
Phương thức | Mô tả |
---|---|
google.visualization.PatternFormat(pattern) |
Hàm khởi tạo. Không nhận đối tượng tùy chọn. Thay vào đó, nó sẽ nhận một tham số pattern (mẫu) chuỗi. Đây là một chuỗi mô tả các giá trị cột cần đặt vào cột đích, cùng với mọi văn bản tuỳ ý. Nhúng phần giữ chỗ trong chuỗi của bạn để cho biết một giá trị từ một cột khác được nhúng. Phần giữ chỗ là
Mã mẫuVí dụ sau đây minh họa hàm khởi tạo cho một mẫu
tạo phần tử liên kết, trong đó phần tử đầu tiên và phần tử thứ hai được lấy từ phương thức
var formatter = new google.visualization.PatternFormat( '<a href="mailto:{1}">{0}</a>'); |
format(dataTable, srcColumnIndices,
opt_dstColumnIndex)
|
Lệnh gọi định dạng chuẩn với một vài tham số bổ sung:
Xem các ví dụ về định dạng sau bảng. |
Dưới đây là một vài ví dụ về dữ liệu đầu vào và kết quả cho một bảng có 4 cột.
Row before formatting (4 columns, last is blank): John | Paul | Jones | [empty] var formatter = new google.visualization.PatternFormat("{0} {1} {2}"); formatter.format(data, [0,1,2], 3); Output: John | Paul | Jones | John Paul Jones var formatter = new google.visualization.PatternFormat("{1}, {0}"); formatter.format(data, [0,2], 3); Output: John | Paul | Jones | Jones, John
Mã mẫu
Ví dụ sau đây minh họa cách kết hợp dữ liệu từ hai cột để tạo địa chỉ email. Phương thức này sử dụng đối tượng DataView để ẩn các cột nguồn ban đầu:
var data = new google.visualization.DataTable(); data.addColumn('string', 'Name'); data.addColumn('string', 'Email'); data.addRows([ ['John Lennon', 'john@beatles.co.uk'], ['Paul McCartney', 'paul@beatles.co.uk'], ['George Harrison', 'george@beatles.co.uk'], ['Ringo Starr', 'ringo@beatles.co.uk'] ]); var table = new google.visualization.Table(document.getElementById('patternformat_div')); var formatter = new google.visualization.PatternFormat( '<a href="mailto:{1}">{0}</a>'); // Apply formatter and set the formatted value of the first column. formatter.format(data, [0, 1]); var view = new google.visualization.DataView(data); view.setColumns([0]); // Create a view with the first column only. table.draw(view, {allowHtml: true, showRowNumber: true, width: '100%', height: '100%'});
Trình trợ giúp tiện ích
Một lớp trợ giúp để đơn giản hoá việc viết Tiện ích sử dụng API Hình ảnh của Google.
Hàm dựng
google.visualization.GadgetHelper()
Phương pháp
Phương thức | Giá trị trả về | Mô tả |
---|---|---|
createQueryFromPrefs(prefs) |
google.Visualization.Query |
Tĩnh. Tạo một thực thể mới của google.visualization.Query và đặt các thuộc tính của thực thể đó theo các giá trị trong phần tuỳ chọn tiện ích. Loại tham số prefs là _IG_Prefs
|
validateResponse(response) |
Boolean |
Tĩnh. Tham số response thuộc loại
google.Visualization.QueryResponse. Trả về true nếu
phản hồi có chứa dữ liệu. Trả về false nếu quá trình thực thi truy vấn không thành công và
phản hồi không chứa dữ liệu. Nếu xảy ra lỗi, phương thức này sẽ hiển thị thông báo lỗi.
|
Các lớp truy vấn
Các đối tượng sau đây dùng để gửi truy vấn dữ liệu đến một nguồn dữ liệu bên ngoài, chẳng hạn như Bảng tính Google.
- Truy vấn – Gói yêu cầu dữ liệu đi.
- QueryResponse – Xử lý phản hồi từ nguồn dữ liệu.
Cụm từ tìm kiếm
Biểu thị truy vấn được gửi đến một nguồn dữ liệu.
Hàm dựng
google.visualization.Query(dataSourceUrl, opt_options)
Thông số
- dataSourceUrl
- [Bắt buộc, Chuỗi] URL để gửi cụm từ tìm kiếm đến. Xem Tài liệu về biểu đồ và bảng tính cho Google Bảng tính.
- opt_options
-
[Đối tượng không bắt buộc] Bản đồ của các tùy chọn cho yêu cầu. Lưu ý: Nếu đang truy cập vào một nguồn dữ liệu bị hạn chế, bạn không nên sử dụng tham số này. Sau đây là các thuộc tính được hỗ trợ:
-
sendmethod – [Không bắt buộc, Chuỗi] Chỉ định phương thức cần sử dụng để gửi truy vấn. Chọn một trong các giá trị chuỗi sau:
- 'xhr' – Gửi truy vấn bằng XmlHttpRequest.
- 'scriptInjection' - Gửi truy vấn bằng cách sử dụng tính năng chèn tập lệnh.
-
'makeRequest' – [Chỉ dành cho các tiện ích
đã ngừng hoạt động] Gửi truy vấn bằng phương thức API Tiện ích
makeRequest()
. Nếu được chỉ định, bạn cũng nên chỉ định makeRequestParams. -
'auto' – Sử dụng phương thức được xác định bởi tham số URL
tqrt
từ URL nguồn dữ liệu.tqrt
có thể có các giá trị sau: "xhr", "scriptInjection" hoặc "makeRequest". Nếutqrt
bị thiếu hoặc có giá trị không hợp lệ, giá trị mặc định sẽ là "xhr" cho yêu cầu cùng miền và "scriptInjection" cho các yêu cầu trên nhiều miền.
-
makeRequestParams – [Đối tượng] Bản đồ tham số cho truy vấn
makeRequest()
. Chỉ được sử dụng và bắt buộc nếu sendMethod là 'makeRequest'.
-
sendmethod – [Không bắt buộc, Chuỗi] Chỉ định phương thức cần sử dụng để gửi truy vấn. Chọn một trong các giá trị chuỗi sau:
Phương pháp
Phương thức | Giá trị trả về | Mô tả |
---|---|---|
abort() |
Không |
Dừng truy vấn tự động gửi đã bắt đầu bằng setRefreshInterval() .
|
setRefreshInterval(seconds)
|
Không |
Đặt truy vấn để tự động gọi phương thức Nếu sử dụng phương thức này, bạn nên gọi phương thức này trước khi gọi phương thức
Huỷ phương thức này bằng cách gọi lại phương thức này bằng số 0 (mặc định) hoặc gọi phương thức |
setTimeout(seconds) |
Không |
Đặt số giây để chờ nguồn dữ liệu phản hồi trước khi báo lỗi
hết thời gian chờ. seconds là một số lớn hơn 0. Thời gian chờ mặc định là 30 giây. Nếu được sử dụng, bạn nên gọi phương thức này trước khi gọi phương thức send .
|
setQuery(string) |
Không |
Đặt chuỗi truy vấn. Giá trị của thông số string phải là một truy vấn
hợp lệ. Nếu được sử dụng, bạn phải gọi phương thức này trước khi gọi phương thức send .
Tìm hiểu thêm về ngôn ngữ Truy vấn.
|
send(callback) |
Không |
Gửi truy vấn đến nguồn dữ liệu. callback phải là một hàm sẽ được gọi khi nguồn dữ liệu phản hồi. Hàm callback sẽ nhận được một thông số thuộc loại google.Visualization.QueryResponse.
|
Phản hồi truy vấn
Biểu thị phản hồi thực thi truy vấn khi nhận được từ nguồn dữ liệu. Một thực thể của lớp này được truyền dưới dạng đối số đến hàm callback được thiết lập khi Query.send được gọi.
Phương pháp
Phương thức | Giá trị trả về | Mô tả |
---|---|---|
getDataTable() |
Bảng dữ liệu |
Trả về bảng dữ liệu do nguồn dữ liệu trả về. Trả về null nếu quá trình thực thi truy vấn không thành công và không có dữ liệu nào được trả về.
|
getDetailedMessage() |
Chuỗi | Trả về thông báo lỗi chi tiết đối với các truy vấn không thành công. Nếu quá trình thực thi truy vấn thành công, phương thức này sẽ trả về một chuỗi trống. Thông báo được trả về là thông báo dành cho nhà phát triển và có thể chứa thông tin kỹ thuật, chẳng hạn như "Cột {salary} không tồn tại". |
getMessage() |
Chuỗi | Trả về thông báo lỗi ngắn đối với các truy vấn không thành công. Nếu thực thi thành công truy vấn, phương thức này sẽ trả về một chuỗi trống. Thông báo được trả về là một thông báo ngắn chỉ dành cho người dùng cuối, chẳng hạn như "Truy vấn không hợp lệ" hoặc "Bị từ chối truy cập". |
getReasons() |
Mảng chuỗi |
Trả về một mảng gồm 0 mục nhập khác. Mỗi mục nhập là một chuỗi ngắn có lỗi hoặc
mã cảnh báo được đưa ra trong khi thực thi truy vấn. Mã có thể sử dụng:
|
hasWarning() |
Boolean | Trả về true nếu quá trình thực thi truy vấn có thông báo cảnh báo. |
isError() |
Boolean |
Trả về true nếu quá trình thực thi truy vấn không thành công và phản hồi không chứa bảng dữ liệu nào. Trả về <false> nếu lượt thực thi truy vấn thành công và phản hồi
chứa một bảng dữ liệu.
|
Lỗi hiển thị
API này cung cấp một số hàm để giúp bạn hiển thị thông báo lỗi tuỳ chỉnh cho người dùng. Để sử dụng những hàm này, hãy cung cấp một phần tử vùng chứa trên trang (thường là <div>
), trong đó API sẽ vẽ một thông báo lỗi có định dạng. Vùng chứa này có thể là phần tử vùng chứa hình ảnh hoặc chỉ là một vùng chứa lỗi. Nếu bạn chỉ định hình ảnh chứa phần tử chứa, thông báo lỗi sẽ xuất hiện phía trên hình ảnh.
Sau đó, gọi hàm thích hợp bên dưới để hiển thị hoặc xoá thông báo lỗi.
Tất cả hàm đều là hàm tĩnh trong không gian tên google.visualization.errors
.
Nhiều hình ảnh trực quan có thể gửi một sự kiện lỗi; hãy xem sự kiện lỗi bên dưới để tìm hiểu thêm về điều đó.
Bạn có thể xem một lỗi tuỳ chỉnh mẫu trong Ví dụ về trình bao bọc truy vấn.
Chức năng | Giá trị trả về | Mô tả |
---|---|---|
addError(container, message, opt_detailedMessage,
opt_options)
|
Giá trị của mã nhận dạng chuỗi xác định đối tượng lỗi được tạo. Đây là giá trị duy nhất trên trang và có thể dùng để xoá lỗi hoặc tìm phần tử bị lỗi. |
Thêm một khối hiển thị lỗi vào phần tử trang đã chỉ định, với văn bản và định dạng được chỉ định.
|
addErrorFromQueryResponse(container, response) |
Giá trị mã nhận dạng chuỗi xác định đối tượng lỗi được tạo hoặc giá trị rỗng nếu phản hồi không cho biết lỗi. Đây là giá trị duy nhất trên trang và có thể dùng để xóa lỗi hoặc tìm phần tử bị lỗi. |
Chuyển phản hồi truy vấn và vùng chứa thông báo lỗi đến phương thức này: nếu phản hồi truy vấn cho biết lỗi truy vấn, sẽ hiển thị một thông báo lỗi trong phần tử trang được chỉ định. Nếu phản hồi truy vấn là rỗng, phương thức này sẽ báo lỗi JavaScript. Truyền QueryResponse đã nhận được trong trình xử lý truy vấn vào thông báo này để hiển thị lỗi. Nó cũng sẽ đặt kiểu màn hình phù hợp với loại (lỗi hoặc cảnh báo, tương tự như
|
removeError(id) |
Boolean: true nếu lỗi đã bị xoá; false nếu không bị xoá. |
Xoá lỗi do mã chỉ định khỏi trang.
|
removeAll(container) |
Không |
Xóa tất cả các khối lỗi khỏi một vùng chứa được chỉ định. Nếu vùng chứa được chỉ định không tồn tại, việc này sẽ tạo ra lỗi.
|
getContainer(errorId) |
Xử lý thành phần DOM có lỗi được chỉ định hoặc rỗng nếu không tìm thấy. |
Truy xuất xử lý cho phần tử vùng chứa có lỗi do errorID chỉ định.
|
Sự kiện
Hầu hết các hình ảnh sự kiện kích hoạt đều cho biết điều gì đó đã xảy ra. Là người dùng biểu đồ, bạn thường muốn theo dõi những sự kiện này. Nếu tự mã hoá hình ảnh, bạn cũng có thể muốn kích hoạt các sự kiện đó.
Các phương thức sau cho phép nhà phát triển theo dõi các sự kiện, xóa trình xử lý sự kiện hiện có hoặc kích hoạt sự kiện từ bên trong hình ảnh trực quan.
- google.Visualization.events.addListener() và google.Visualization.events.addOneTimeListener() sẽ nghe các sự kiện.
- google.Visualization.events.removeListener() sẽ xóa trình nghe hiện có
- google.Visualization.events.removeAllListeners() xóa tất cả người nghe của một biểu đồ cụ thể
- google.Visualization.events.trigger() sẽ kích hoạt một sự kiện.
addListener()
Hãy gọi phương thức này để đăng ký nhận các sự kiện được kích hoạt bởi một hình ảnh được lưu trữ trên trang của bạn. Bạn nên ghi lại những đối số sự kiện (nếu có) sẽ được truyền vào hàm xử lý.
google.visualization.events.addListener(source_visualization, event_name, handling_function)
- nguồn_hình_ảnh_nguồn
- Xử lý thực thể hình ảnh nguồn.
- event_name
- Tên chuỗi của sự kiện cần nghe. Hình ảnh trực quan phải ghi lại những sự kiện mà hình ảnh đó gửi.
- handling_function
- Tên của hàm JavaScript cục bộ để gọi khi source_Visualization kích hoạt sự kiện event_name. Hàm xử lý sẽ được truyền mọi đối số sự kiện dưới dạng thông số.
Trả về
Một trình xử lý trình nghe cho trình nghe mới. Bạn có thể sử dụng trình xử lý để xóa trình nghe này sau khi cần thiết bằng cách gọi google.Visualization.events.removeListener().
Ví dụ
Dưới đây là ví dụ về cách đăng ký nhận sự kiện lựa chọn
var table = new google.visualization.Table(document.getElementById('table_div')); table.draw(data, options); google.visualization.events.addListener(table, 'select', selectHandler); function selectHandler() { alert('A table row was selected'); }
addOneTimeListener()
Mã này giống với addListener()
nhưng dành cho các sự kiện chỉ nên được nghe một lần. Những lần gửi sự kiện tiếp theo sẽ không gọi hàm xử lý.
Ví dụ về trường hợp hữu ích: mọi bản vẽ sẽ tạo ra một sự kiện ready
. Nếu chỉ muốn ready
đầu tiên thực thi mã của mình, bạn nên addOneTimeListener
thay vì addListener
.
removeListener()
Gọi phương thức này để huỷ đăng ký trình nghe sự kiện hiện có.
google.visualization.events.removeListener(listener_handler)
- listener_handler
- Trình xử lý xử lý để xoá, như được trả về bởi google.Visualization.events.addListener().
removeAllListeners()
Gọi phương thức này để hủy đăng ký tất cả trình nghe sự kiện của một phiên bản hình ảnh cụ thể.
google.visualization.events.removeAllListeners(source_visualization)
- nguồn_hình_ảnh_nguồn
- Xử lý thực thể hình ảnh nguồn mà tất cả trình nghe sự kiện sẽ bị xoá.
trigger()
Được gọi bởi trình triển khai trực quan. Hãy gọi phương thức này từ hình ảnh của bạn để kích hoạt một sự kiện có tên và tập hợp giá trị tùy ý.
google.visualization.events.trigger(source_visualization, event_name, event_args)
- nguồn_hình_ảnh_nguồn
-
Xử lý thực thể hình ảnh nguồn. Nếu đang gọi hàm này từ trong một phương thức được xác định bằng hình ảnh gửi, bạn chỉ cần chuyển từ khoá
this
vào. - event_name
- Tên chuỗi để gọi sự kiện. Bạn có thể chọn bất kỳ giá trị chuỗi nào mà bạn muốn.
- event_args
- [không bắt buộc] Bản đồ các cặp tên/giá trị cần truyền đến phương thức nhận. Ví dụ:{message: "Chào bạn!", điểm: 10, tên: "Fred"}. Bạn có thể truyền giá trị rỗng nếu không cần sự kiện nào; người nhận phải chuẩn bị sẵn sàng để chấp nhận giá trị rỗng cho thông số này.
Ví dụ
Sau đây là một ví dụ về hình ảnh trực quan hoá một phương thức có tên là "select" (chọn) khi phương thức onclick được gọi. Hàm này không trả về bất kỳ giá trị nào.
MyVisualization.prototype.onclick = function(rowIndex) { this.highlightRow(this.selectedRow, false); // Clear previous selection this.highlightRow(rowIndex, true); // Highlight new selection // Save the selected row index in case getSelection is called. this.selectedRow = rowIndex; // Trigger a select event. google.visualization.events.trigger(this, 'select', null); }
Phương thức và thuộc tính hình ảnh chuẩn
Mỗi hình ảnh trực quan phải hiển thị tập hợp các phương thức và thuộc tính bắt buộc và không bắt buộc sau. Tuy nhiên, xin lưu ý rằng không có quy trình kiểm tra loại nào để thực thi các tiêu chuẩn này, vì vậy, bạn nên đọc tài liệu cho từng hình ảnh.
- Hàm dựng
- draw()
- getAction() [không bắt buộc]
- getSelection() [không bắt buộc]
- removeAction() [không bắt buộc]
- setAction() [không bắt buộc]
- setSelection() [không bắt buộc]
Lưu ý: Các phương thức này nằm trong không gian tên của hình ảnh trực quan, không phải không gian tên dạng google.Visualization.
Hàm dựng
Hàm khởi tạo phải có tên của lớp hình ảnh và trả về một bản sao của lớp đó.
visualization_class_name(dom_element)
- dom_element
- Con trỏ tới một phần tử DOM mà bạn nên nhúng hình ảnh trực quan.
Ví dụ
var org = new google.visualization.OrgChart(document.getElementById('org_div'));
draw()
Vẽ hình ảnh trên trang. Trên thực tế, tính năng này có thể tìm nạp một hình ảnh trên máy chủ hoặc tạo hình ảnh đồ hoạ trên trang bằng mã hình ảnh liên kết. Bạn nên gọi phương thức này mỗi khi dữ liệu hoặc tuỳ chọn thay đổi. Đối tượng phải được vẽ bên trong phần tử DOM được truyền vào hàm dựng.
draw(data[, options])
- dữ liệu
-
Một
DataTable
hoặcDataView
đang giữ dữ liệu cần dùng để vẽ biểu đồ. Không có phương thức chuẩn nào để trích xuấtDataTable
từ biểu đồ. - tùy chọn
-
[Không bắt buộc] Bản đồ các cặp tên/giá trị của các tuỳ chọn tuỳ chỉnh. Ví dụ như chiều cao và chiều rộng, màu nền và chú thích. Tài liệu trực quan hoá sẽ liệt kê các tuỳ chọn mà bạn có thể sử dụng và nên hỗ trợ các tuỳ chọn mặc định nếu bạn không chỉ định tham số này.
Bạn có thể sử dụng cú pháp đối tượng JavaScript để truyền vào bản đồ tùy chọn: ví dụ:
{x:100, y:200, title:'An Example'}
Ví dụ
chart.draw(myData, {width: 400, height: 240, is3D: true, title: 'My Daily Activities'});
getAction()
Điều này được hiển thị (không bắt buộc) bằng các hình ảnh trực quan có chú giải công cụ và cho phép các hành động trong chú giải công cụ.
Trả về đối tượng hành động trên chú giải công cụ có actionID
được yêu cầu.
Ví dụ:
// Returns the action object with the ID 'alertAction'. chart.getAction('alertAction');
getSelection()
Việc này được hiển thị (không bắt buộc) bằng hình ảnh cho phép bạn truy cập vào dữ liệu đang chọn trong hình ảnh.
selection_array getSelection()
Trả về
selection_array Một mảng các đối tượng đã chọn, mỗi đối tượng mô tả một phần tử dữ liệu trong bảng cơ bản dùng để tạo hình ảnh trực quan (DataView
hoặc DataTable
). Mỗi đối tượng có các thuộc tính row
và/hoặc column
, với chỉ mục của hàng và/hoặc cột của mục đã chọn trong DataTable
cơ bản. Nếu thuộc tính row
có giá trị rỗng thì lựa chọn đó sẽ là một cột; còn nếu thuộc tính column
có giá trị rỗng thì lựa chọn đó sẽ là một hàng; nếu cả hai đều không rỗng, thì đó là một mục dữ liệu cụ thể. Bạn có thể gọi phương thức DataTable.getValue()
để nhận giá trị của mục đã chọn. Mảng được truy xuất có thể được truyền vào setSelection()
.
Ví dụ
function myClickHandler(){ var selection = myVis.getSelection(); var message = ''; for (var i = 0; i < selection.length; i++) { var item = selection[i]; if (item.row != null && item.column != null) { message += '{row:' + item.row + ',column:' + item.column + '}'; } else if (item.row != null) { message += '{row:' + item.row + '}'; } else if (item.column != null) { message += '{column:' + item.column + '}'; } } if (message == '') { message = 'nothing'; } alert('You selected ' + message); }
removeAction()
Điều này được hiển thị (không bắt buộc) bằng các hình ảnh trực quan có chú giải công cụ và cho phép các hành động trong chú giải công cụ.
Xóa đối tượng hành động trong chú giải công cụ có actionID
được yêu cầu khỏi biểu đồ.
Ví dụ:
// Removes an action from chart with the ID of 'alertAction'. chart.removeAction('alertAction');
setAction()
Điều này được hiển thị (không bắt buộc) bằng các hình ảnh trực quan có chú giải công cụ và cho phép các hành động trong chú giải công cụ. Tính năng này chỉ hoạt động với các biểu đồ cốt lõi (thanh, cột, đường, khu vực, tán xạ, kết hợp, bong bóng, bánh, bánh rán, nến, biểu đồ, khu vực bậc thang).
Đặt hành động trong chú giải công cụ sẽ được thực thi khi người dùng nhấp vào văn bản hành động.
setAction(action object)
Phương thức setAction
lấy một đối tượng làm tham số hành động. Đối tượng này phải chỉ định 3 thuộc tính: id
– mã nhận dạng cho thao tác được đặt, text
– văn bản sẽ xuất hiện trong chú giải công cụ cho thao tác và action
– hàm sẽ chạy khi người dùng nhấp vào văn bản thao tác.
Bạn phải thiết lập tất cả hành động trong chú giải công cụ trước khi gọi phương thức draw()
của biểu đồ.
Ví dụ:
// Sets a tooltip action which will pop an alert box on the screen when triggered. chart.setAction({ id: 'alertAction', text: 'Trigger Alert', action: function() { alert('You have triggered an alert'); } });
Phương thức setAction
cũng có thể xác định hai thuộc tính bổ sung: visible
và enabled
. Các thuộc tính này phải là các hàm trả về các giá trị boolean
cho biết liệu thao tác chú giải công cụ có hiển thị và/hoặc bật hay không.
Ví dụ:
// The visible/enabled functions can contain any logic to determine their state // as long as they return boolean values. chart.setAction({ id: 'alertAction', text: 'Trigger Alert', action: function() { alert('You have triggered an alert'); }, visible: function() { return true; }, enabled: function() { return true; } });
setSelection()
Bạn có thể chọn một mục dữ liệu trong hình ảnh (ví dụ: một điểm trong biểu đồ vùng hoặc một thanh trong biểu đồ thanh). Khi phương thức này được gọi, hình ảnh trực quan phải cho biết lựa chọn mới là gì. Việc triển khai setSelection()
không được kích hoạt sự kiện "select" (chọn). Hình ảnh trực quan có thể bỏ qua một phần của lựa chọn. Ví dụ: một bảng chỉ có thể hiển thị các hàng đã chọn có thể bỏ qua các phần tử ô hoặc cột trong quá trình triển khai setSelection()
hoặc có thể chọn toàn bộ hàng.
Mỗi khi phương thức này được gọi, tất cả mục đã chọn sẽ được bỏ chọn và danh sách lựa chọn mới
được truyền vào sẽ được áp dụng. Không có cách rõ ràng nào để bỏ chọn từng mục; để bỏ chọn từng mục riêng lẻ, hãy gọi setSelection()
để giữ nguyên các mục đã chọn; để bỏ chọn tất cả các phần tử, hãy gọi setSelection()
, setSelection(null)
hoặc setSelection([])
.
setSelection(selection_array)
- mảng_lựa_chọn
-
Một mảng đối tượng, mỗi đối tượng có một hàng số và/hoặc thuộc tính cột.
row
vàcolumn
là số hàng hoặc cột dựa trên số 0 của một mục trong bảng dữ liệu để chọn. Để chọn toàn bộ một cột, hãy đặtrow
thành rỗng; để chọn một hàng đầy đủ, hãy đặtcolumn
thành rỗng. Ví dụ:setSelection([{row:0,column:1},{row:1, column:null}])
chọn ô ở (0,1) và toàn bộ hàng 1.
Các loại phương thức tĩnh
Phần này chứa nhiều phương thức hữu ích được hiển thị trong không gian tên google.visualization
.
mảngToDataTable()
Phương thức này sử dụng một mảng hai chiều và chuyển đổi mảng đó thành DataTable.
Loại dữ liệu trong cột được xác định tự động dựa trên dữ liệu mà bạn cung cấp. Bạn cũng có thể chỉ định các loại dữ liệu cột bằng cách sử dụng ký hiệu giá trị cố định đối tượng trong hàng đầu tiên (hàng tiêu đề cột) của mảng (tức là {label: 'Start Date', type: 'date'}
). Bạn cũng có thể sử dụng các vai trò dữ liệu không bắt buộc, nhưng bạn phải xác định rõ loại dữ liệu này bằng cách sử dụng ký hiệu giá trị cố định đối tượng. Bạn cũng có thể dùng ký hiệu ký hiệu đối tượng cho bất kỳ ô nào để xác định Đối tượng ô).
Cú pháp
google.visualization.arrayToDataTable(twoDArray, opt_firstRowIsData)
- haiDArray
- Một mảng hai chiều, trong đó mỗi hàng đại diện cho một hàng trong bảng dữ liệu. Nếu opt_firstRowIsData là false (mặc định), hàng đầu tiên sẽ được hiểu là nhãn tiêu đề. Các loại dữ liệu của từng cột được tự động diễn giải từ dữ liệu đã cho. Nếu một ô không có giá trị, hãy chỉ định một giá trị rỗng hoặc trống cho phù hợp.
- opt_firstRowIsData
- Liệu hàng đầu tiên có xác định hàng tiêu đề hay không. Nếu đúng, tất cả các hàng đều được giả định là dữ liệu. Nếu giá trị là false, thì hàng đầu tiên được giả định là một hàng tiêu đề và các giá trị được chỉ định là nhãn cột. Mặc định là sai.
Trả về
DataTable
mới.
Ví dụ
Mã sau đây minh hoạ 3 cách để tạo cùng một đối tượng DataTable
:
// Version 1: arrayToDataTable method var data2 = google.visualization.arrayToDataTable([ [{label: 'Country', type: 'string'}, {label: 'Population', type: 'number'}, {label: 'Area', type: 'number'}, {type: 'string', role: 'annotation'}], ['CN', 1324, 9640821, 'Annotated'], ['IN', 1133, 3287263, 'Annotated'], ['US', 304, 9629091, 'Annotated'], ['ID', 232, 1904569, 'Annotated'], ['BR', 187, 8514877, 'Annotated'] ]); // Version 2: DataTable.addRows var data3 = new google.visualization.DataTable(); data3.addColumn('string','Country'); data3.addColumn('number','Population'); data3.addColumn('number','Area'); data3.addRows([ ['CN', 1324, 9640821], ['IN', 1133, 3287263], ['US', 304, 9629091], ['ID', 232, 1904569], ['BR', 187, 8514877] ]); // Version 3: DataTable.setValue var data = new google.visualization.DataTable(); data.addColumn('string','Country'); data.addColumn('number', 'Population'); data.addColumn('number', 'Area'); data.addRows(5); data.setValue(0, 0, 'CN'); data.setValue(0, 1, 1324); data.setValue(0, 2, 9640821); data.setValue(1, 0, 'IN'); data.setValue(1, 1, 1133); data.setValue(1, 2, 3287263); data.setValue(2, 0, 'US'); data.setValue(2, 1, 304); data.setValue(2, 2, 9629091); data.setValue(3, 0, 'ID'); data.setValue(3, 1, 232); data.setValue(3, 2, 1904569); data.setValue(4, 0, 'BR'); data.setValue(4, 1, 187); data.setValue(4, 2, 8514877);
drawChart()
Phương thức này sẽ tạo biểu đồ trong một lệnh gọi. Ưu điểm của việc sử dụng phương thức này là yêu cầu ít mã hơn một chút và bạn có thể chuyển đổi tuần tự và lưu các hình ảnh dưới dạng chuỗi văn bản để sử dụng lại. Phương thức này không trả về một ô điều khiển cho biểu đồ đã tạo, vì vậy, bạn không thể chỉ định trình nghe phương thức để phát hiện các sự kiện biểu đồ.
Cú pháp
google.visualization.drawChart(chart_JSON_or_object)
- biểu_thức_JSON_hoặc_đối_tác
- Chuỗi ký tự JSON hoặc đối tượng JavaScript, với các thuộc tính sau (phân biệt chữ hoa chữ thường):
Thuộc tính | Loại | Bắt buộc | Mặc định | Mô tả |
---|---|---|---|---|
typeType | Chuỗi | Bắt buộc | không có |
Tên lớp của hình ảnh trực quan. Bạn có thể bỏ qua tên gói google.visualization cho các biểu đồ của Google. Nếu thư viện hình ảnh thích hợp chưa được tải, phương thức này sẽ tải thư viện cho bạn nếu đây là hình ảnh trực quan của Google; bạn phải tải hình ảnh trực quan của bên thứ ba một cách rõ ràng. Ví dụ: Table ,
PieChart , example.com.CrazyChart .
|
Mã vùng chứa | Chuỗi | Bắt buộc | không có | Mã của phần tử DOM trên trang của bạn sẽ lưu trữ hình ảnh trực quan. |
tùy chọn | Đối tượng | Không bắt buộc | không có |
Đối tượng mô tả các tuỳ chọn cho hình ảnh trực quan. Bạn có thể sử dụng ký hiệu cố định JavaScript hoặc cung cấp tên người dùng cho đối tượng. Ví dụ:
"options": {"width": 400, "height": 240,
"is3D": true, "title": "Company Performance"}
|
dataTable | Đối tượng | Không bắt buộc | Không |
DataTable dùng để điền sẵn hình ảnh trực quan. Giá trị này có thể là chuỗi đại diện JSON theo định nghĩa của một DataTable, như mô tả ở trên hoặc một ô điều khiển đối tượng google.visualization.DataTable được điền hoặc một mảng 2 chiều như được
arrayToDataTable(opt_firstRowIsData=false)
chấp nhận.
Bạn phải chỉ định thuộc tính này hoặc thuộc tính dataSourceUrl .
|
Url nguồn dữ liệu | Chuỗi | Không bắt buộc | Không |
Truy vấn nguồn dữ liệu để điền dữ liệu biểu đồ (ví dụ: Bảng tính Google). Bạn phải chỉ định thuộc tính này hoặc thuộc tính dataTable .
|
query | Chuỗi | Không bắt buộc | Không |
Nếu chỉ định dataSourceUrl , bạn có thể tuỳ ý chỉ định một chuỗi truy vấn giống như SQL
bằng cách sử dụng Ngôn ngữ truy vấn hình ảnh để lọc hoặc thao tác dữ liệu.
|
Khoảng thời gian làm mới | Số | Không bắt buộc | Không |
Tần suất, bằng giây, hình ảnh sẽ làm mới nguồn truy vấn của hình ảnh. Chỉ sử dụng thuộc tính này khi chỉ định dataSourceUrl .
|
xem | Đối tượng HOẶC mảng | Không bắt buộc | Không |
Đặt một đối tượng khởi tạo DataView , đóng vai trò như một bộ lọc đối với dữ liệu cơ bản, được xác định bằng tham số dataTable hoặc dataSourceUrl .
Bạn có thể truyền một chuỗi hoặc đối tượng khởi tạo DataView , như đối tượng trả về bởi dataview.toJSON() .
Ví dụ: "view": {"columns": [1, 2]} Bạn cũng có thể truyền một mảng đối tượng khởi tạo DataView , trong trường hợp đó, DataView đầu tiên trong mảng sẽ được áp dụng cho dữ liệu cơ bản để tạo một bảng dữ liệu mới, còn DataView thứ hai được áp dụng cho bảng dữ liệu do áp dụng DataView đầu tiên, v.v.
|
Ví dụ
Tạo biểu đồ bảng dựa trên nguồn dữ liệu bảng tính và chứa cụm từ tìm kiếm SELECT A,D HERE D > 100 ORDER BY D
<script type="text/javascript"> google.charts.load('current'); // Note: No need to specify chart packages. function drawVisualization() { google.visualization.drawChart({ "containerId": "visualization_div", "dataSourceUrl": "https://spreadsheets.google.com/a/google.com/tq?key=pCQbetd-CptGXxxQIG7VFIQ&pub=1", "query":"SELECT A,D WHERE D > 100 ORDER BY D", "refreshInterval": 5, "chartType": "Table", "options": { "alternatingRowStyle": true, "showRowNumber" : true } }); } google.charts.setOnLoadCallback(drawVisualization); </script>
Ví dụ tiếp theo sẽ tạo cùng một bảng, nhưng tạo DataTable
cục bộ:
<script type='text/javascript'> google.charts.load('current'); function drawVisualization() { var dataTable = [ ["Country", "Population Density"], ["Indonesia", 117], ["China", 137], ["Nigeria", 142], ["Pakistan", 198], ["India", 336], ["Japan", 339], ["Bangladesh", 1045] ]; google.visualization.drawChart({ "containerId": "visualization_div", "dataTable": dataTable, "refreshInterval": 5, "chartType": "Table", "options": { "alternatingRowStyle": true, "showRowNumber" : true, } }); } google.charts.setOnLoadCallback(drawVisualization); </script>
Ví dụ này truyền vào một chuỗi đại diện chuỗi JSON của biểu đồ mà bạn có thể đã tải từ một tệp:
<script type="text/javascript"> google.charts.load('current'); var myStoredString = '{"containerId": "visualization_div",' + '"dataSourceUrl": "https://spreadsheets.google.com/a/google.com/tq?key=pCQbetd-CptGXxxQIG7VFIQ&pub=1",' + '"query":"SELECT A,D WHERE D > 100 ORDER BY D",' + '"refreshInterval": 5,' + '"chartType": "Table",' + '"options": {' + ' "alternatingRowStyle": true,' + ' "showRowNumber" : true' + '}' + '}'; function drawVisualization() { google.visualization.drawChart(myStoredString); } google.charts.setOnLoadCallback(drawVisualization); </script>
drawToolbar()
Đây là hàm khởi tạo cho phần tử thanh công cụ có thể đính kèm vào nhiều hình ảnh trực quan. Thanh công cụ này cho phép người dùng xuất dữ liệu hình ảnh thành các định dạng khác nhau hoặc để cung cấp phiên bản có thể nhúng của hình ảnh để sử dụng ở nhiều nơi. Hãy xem trang thanh công cụ để biết thêm thông tin và ví dụ về mã.