Questa pagina elenca gli oggetti esposti dall'API Google Visualization e i metodi standard esposti da tutte le visualizzazioni.
Nota: lo spazio dei nomi dell'API Google Visualization è google.visualization.*
Nota sugli array
Alcuni browser non gestiscono correttamente le virgole finali negli array JavaScript, quindi non utilizzarli. È possibile inserire valori vuoti al centro di un array. Quindi, ad esempio:
data = ['a','b','c', ,]; // BAD
data = ['a','b','c']; // OK
data = ['a','b', ,'d']; // Also OK. The third value is undefined.
Classe DataTable
Rappresenta una tabella di valori bidimensionale e modificabile. Per creare una copia di sola lettura di un
DataTable
(facoltativamente filtrato per mostrare valori, righe o colonne specifici), crea un
DataView.
A ogni colonna viene assegnato un tipo di dati, oltre a diverse proprietà facoltative tra cui un ID, un'etichetta e una stringa con pattern.
Inoltre, puoi assegnare proprietà personalizzate (coppie nome/valore) a qualsiasi cella, riga, colonna o all'intera tabella. Alcune visualizzazioni supportano specifiche proprietà personalizzate; ad esempio, la visualizzazione tabella supporta una proprietà della cella denominata "style", che consente di assegnare una stringa di stile CSS incorporata alla cella della tabella visualizzata. Una visualizzazione deve descrivere nella documentazione le proprietà personalizzate supportate.
Vedi anche: QueryResponse.getDataTable
Costruttore
Sintassi
DataTable(opt_data, opt_version)
- opt_data
-
[Facoltativo] Dati utilizzati per inizializzare la tabella. Può trattarsi del JSON restituito chiamando
DataTable.toJSON()
su una tabella compilata oppure di un oggetto JavaScript contenente i dati utilizzati per inizializzare la tabella. La struttura dell'oggetto letterale JavaScript è descritta qui. Se questo parametro non viene fornito, verrà restituita una nuova tabella di dati vuota. - opt_version
- [Facoltativo] Un valore numerico che specifica la versione del protocollo di trasferimento utilizzato. Viene utilizzato solo dagli implementatori dell'origine dati di Strumenti per i grafici. La versione attuale è la 0.6.
Dettagli
L'oggetto DataTable
viene utilizzato per contenere i dati trasmessi in una visualizzazione.
Un DataTable
è una tabella bidimensionale di base. Tutti i dati di ogni colonna devono avere lo stesso tipo di dati. Ogni colonna ha un descrittore che include il tipo di dati, un'etichetta per quella colonna
(che potrebbe essere visualizzata da una visualizzazione) e un ID, che può essere utilizzato per fare riferimento a una colonna
specifica (in alternativa all'utilizzo degli indici di colonna). L'oggetto DataTable
supporta anche
una mappa di proprietà arbitrarie assegnate a un valore specifico, a una riga, a una colonna o all'intero
DataTable
. Le visualizzazioni possono utilizzarli per supportare funzionalità aggiuntive. Ad esempio, la visualizzazione tabella utilizza le proprietà personalizzate per consentirti di assegnare nomi o stili arbitrari alle singole celle.
Ogni cella della tabella contiene un valore. Le celle possono avere un valore nullo o del tipo specificato dalla relativa colonna. Le celle facoltativamente possono assumere una versione "formattata" dei dati, ovvero una versione stringa dei dati, formattata per la visualizzazione da parte di una visualizzazione. Una visualizzazione può utilizzare (ma non è obbligatoria) la versione formattata per la visualizzazione, ma utilizzerà sempre i dati stessi per qualsiasi ordinamento o calcolo che effettua (ad esempio per determinare dove posizionare un punto su un grafico). Un esempio potrebbe essere l'assegnazione dei valori "low", "medium" e "high" come valori formattati ai valori numerici delle celle 1, 2 e 3.
Per aggiungere righe di dati dopo aver chiamato il costruttore, puoi chiamare
addRow()
per una singola riga o
addRows()
per più righe. Puoi anche aggiungere colonne chiamando i metodi addColumn()
. Esistono
metodi di rimozione anche per righe e colonne; tuttavia, anziché rimuovere righe o colonne, valuta la possibilità
di creare una DataView
che sia una visualizzazione selettiva di DataTable
.
Se modifichi i valori in un elemento DataTable
dopo che è stato passato al metodo draw()
di una visualizzazione, le modifiche non modificheranno immediatamente il grafico. Devi richiamare
draw()
di nuovo per riflettere eventuali modifiche.
Nota: i grafici Google non eseguono alcuna convalida sulle tabelle dati. Se lo fosse, la visualizzazione dei grafici sarebbe più lenta. Se fornisci un numero in cui la colonna prevede una stringa o viceversa, Google Chart farà del proprio meglio per interpretare il valore in modo che abbia senso, ma non segnalerà eventuali errori.
Esempi
L'esempio seguente mostra la creazione di un'istanza e il completamento di DataTable
con una stringa letterale, con gli stessi dati mostrati nell'esempio JavaScript riportato sopra:
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);
L'esempio seguente crea un nuovo DataTable
vuoto e lo compila manualmente
con gli stessi dati indicati sopra:
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'}] ]);
Puoi creare un DataTable
chiamando il costruttore senza parametri e poi aggiungendo valori chiamando i metodi addColumn()
/addRows()
elencati di seguito oppure passando un oggetto letterale JavaScript compilato per inizializzarlo. Entrambi i metodi sono descritti di seguito. Quale dovresti usare?
-
Creare e compilare una tabella in JavaScript chiamando
addColumn()
,addRow()
eaddRows()
è un codice molto leggibile. Questo metodo è utile quando inserisci il codice manualmente. È più lento rispetto all'utilizzo della notazione letterale oggetto (descritta di seguito), ma nelle tabelle più piccole (ad esempio, 1000 celle) probabilmente non noterai molte differenze. -
La dichiarazione diretta dell'oggetto
DataTable
che utilizza la notazione letterale oggetto è molto più veloce nelle tabelle di grandi dimensioni. Tuttavia, può essere difficile usare la sintassi ; da usare se riesci a generare la sintassi letterale oggetto nel codice, che riduce la possibilità di errori.
Metodi
Metodo | Valore restituito | Descrizione |
---|---|---|
OPPURE
|
Numero |
Aggiunge una nuova colonna alla tabella di dati e restituisce l'indice della nuova colonna. A tutte le celle della nuova colonna viene assegnato un valore La prima firma contiene i seguenti parametri:
La seconda firma ha un singolo parametro oggetto con i seguenti membri:
Vedi anche: getColumnId, getColumnLabel, getColumnType, insertColumn, getColumnRole |
addRow(opt_cellArray) |
Numero |
Aggiunge una nuova riga alla tabella di dati e restituisce l'indice della nuova riga.
Esempi: 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) |
Numero |
Aggiunge nuove righe alla tabella di dati e restituisce l'indice dell'ultima riga aggiunta. Puoi richiamare questo metodo per creare nuove righe vuote o con i dati utilizzati per completare le righe, come descritto di seguito.
Esempio: 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. ]); Vedi anche: insertRows |
clone() |
DataTable | Restituisce un clone della tabella di dati. Il risultato è una copia approfondita della tabella di dati, ad eccezione delle proprietà della cella, delle proprietà riga, delle proprietà della tabella e delle proprietà delle colonne, che sono copie superficiali. Ciò significa che le proprietà non primitive vengono copiate per riferimento, mentre le proprietà primitive vengono copiate in base al valore. |
getColumnId(columnIndex) |
String |
Restituisce l'identificatore di una determinata colonna specificata dall'indice della colonna nella tabella sottostante. Per le tabelle di dati recuperate dalle query, l'identificatore della colonna viene impostato dall'origine dati e può essere utilizzato per fare riferimento alle colonne quando si utilizza il linguaggio di query. Vedi anche: Query.setQuery |
getColumnIndex(columnIdentifier) |
Stringa, numero |
Restituisce l'indice di una determinata colonna specificata dall'indice della colonna, dall'ID o dall'etichetta se esiste in questa tabella, altrimenti -1. Quando columnIdentifier è una stringa, viene utilizzato per trovare la colonna prima in base al suo ID e poi in base alla relativa etichetta.Vedi anche: getColumnId, getColumnLabel |
getColumnLabel(columnIndex) |
String |
Restituisce l'etichetta di una determinata colonna specificata dall'indice di colonna nella tabella sottostante.
In genere, l'etichetta della colonna fa parte della visualizzazione. Ad esempio, l'etichetta di colonna può essere visualizzata come intestazione di colonna in una tabella o come etichetta legenda in un grafico a torta. Per le tabelle di dati recuperate dalle query, l'etichetta della colonna viene impostata dall'origine dati o dalla clausola label del
linguaggio di query. Vedi anche: setColumnLabel |
getColumnPattern(columnIndex) |
String |
Restituisce il pattern di formattazione utilizzato per formattare i valori della colonna specificata.
Per le tabelle di dati recuperate dalle query, il pattern delle colonne viene impostato dall'origine dati o dalla clausola |
getColumnProperties(columnIndex)
|
Oggetto |
Restituisce una mappa di tutte le proprietà per la colonna specificata. Tieni presente che l'oggetto proprietà viene restituito per riferimento, pertanto la modifica dei valori nell'oggetto recuperato li modifica nell'
|
getColumnProperty(columnIndex, name)
|
Auto |
Restituisce il valore di una proprietà denominata o
Vedi anche: setColumnProperty setColumnProperties |
getColumnRange(columnIndex) |
Oggetto |
Restituisce i valori minimo e massimo dei valori in una colonna specificata. L'oggetto restituito ha le proprietà
|
getColumnRole(columnIndex) |
String | Restituisce il role della colonna specificata. |
getColumnType(columnIndex) |
String |
Restituisce il tipo di una determinata colonna specificata dall'indice della colonna.
Il tipo di colonna restituito può essere uno dei seguenti: |
getDistinctValues(columnIndex) |
array di oggetti |
Restituisce i valori univoci in una determinata colonna in ordine crescente.
Il tipo degli oggetti restituiti è lo stesso di quello restituito dal
metodo |
getFilteredRows(filters) |
array di oggetti |
Restituisce gli indici di riga per le righe che corrispondono a tutti i filtri specificati. Gli indici vengono restituiti in ordine crescente. L'output di questo metodo può essere utilizzato come input per
Un'altra proprietà facoltativa,
Esempio: |
getFormattedValue(rowIndex, columnIndex)
|
String |
Restituisce il valore formattato della cella negli indici di riga e colonna specificati.
Per saperne di più sulla formattazione dei valori delle colonne, consulta la documentazione di riferimento sul linguaggio di query. Vedi anche: setFormattedValue |
getNumberOfColumns() |
Numero | Restituisce il numero di colonne della tabella. |
getNumberOfRows() |
Numero | Restituisce il numero di righe nella tabella. |
getProperties(rowIndex, columnIndex)
|
Oggetto |
Restituisce una mappa di tutte le proprietà per la cella specificata. Tieni presente che l'oggetto proprietà
viene restituito per riferimento, quindi la modifica dei valori nell'oggetto recuperato li cambia nell'elemento
|
getProperty(rowIndex, columnIndex, name)
|
Auto |
Restituisce il valore di una proprietà con nome o
Vedi anche: setCell setProperties setProperty |
getRowProperties(rowIndex)
|
Oggetto |
Restituisce una mappa di tutte le proprietà per la riga specificata. Tieni presente che l'oggetto proprietà viene restituito per riferimento, pertanto la modifica dei valori nell'oggetto recuperato li modifica nell'
|
getRowProperty(rowIndex, name)
|
Auto |
Restituisce il valore di una proprietà con nome o
Vedi anche: setRowProperty setRowProperties |
getSortedRows(sortColumns) |
array di numeri |
Restituisce una versione ordinata della tabella senza modificare l'ordine dei dati sottostanti.
Per ordinare definitivamente i dati sottostanti, chiama
Il valore restituito è un array di numeri, ogni numero è un indice di una riga
Tieni presente che l'ordinamento è garantito: questo significa che se ordini due righe in base a valori uguali, lo stesso ordinamento restituirà ogni volta le righe nello stesso ordine. Esempio: per ripetere le righe ordinate in base alla terza colonna, utilizza: var rowInds = data.getSortedRows([{column: 2}]); for (var i = 0; i < rowInds.length; i++) { var v = data.getValue(rowInds[i], 2); } |
getTableProperties
|
Oggetto | Restituisce una mappa di tutte le proprietà per la tabella. |
getTableProperty(name) |
Auto |
Restituisce il valore di una proprietà con nome o
Vedi anche: setTableProperties setTableProperty |
getValue(rowIndex, columnIndex) |
Oggetto |
Restituisce il valore della cella negli indici di riga e colonna specificati.
Il tipo del valore restituito dipende dal tipo di colonna (vedi getColumnType):
|
insertColumn(columnIndex, type [,label [,id]])
|
Nessun valore |
Inserisce una nuova colonna nella tabella di dati, in base all'indice specifico. Tutte le colonne esistenti in corrispondenza o dopo l'indice specificato vengono spostate in un indice superiore.
Vedi anche: addColumn |
insertRows(rowIndex, numberOrArray) |
Nessun valore |
Inserisci il numero di righe specificato nell'indice di riga specificato.
Vedi anche: addRows |
removeColumn(columnIndex) |
Nessun valore |
Rimuove la colonna in corrispondenza dell'indice specificato.
Vedi anche: removeColumns |
removeColumns(columnIndex, numberOfColumns)
|
Nessun valore |
Rimuove il numero specificato di colonne a partire dalla colonna in corrispondenza dell'indice specificato.
Vedi anche: removeColumn |
removeRow(rowIndex) |
Nessun valore |
Rimuove la riga in corrispondenza dell'indice specificato.
Vedi anche: removeRows |
removeRows(rowIndex, numberOfRows) |
Nessun valore |
Rimuove il numero specificato di righe a partire dalla riga nell'indice specificato.
Vedi anche: removeRow |
setCell(rowIndex, columnIndex [, value [, formattedValue [, properties]]])
|
Nessun valore |
Imposta il valore, il valore formattato e/o le proprietà di una cella.
Vedi anche: setValue(), setFormattedValue(), setProperty(), setProperties(). |
setColumnLabel(columnIndex, label)
|
Nessun valore |
Consente di impostare l'etichetta di una colonna.
Vedi anche: getColumnLabel |
setColumnProperty(columnIndex, name, value)
|
Nessun valore |
Imposta una proprietà per la colonna singola. Alcune visualizzazioni supportano le proprietà di riga, colonna o cella per modificarne la visualizzazione o il comportamento; consulta la documentazione della visualizzazione per scoprire quali proprietà sono supportate.
Vedi anche:setColumnProperties getColumnProperty |
setColumnProperties(columnIndex, properties)
|
Nessun valore |
Consente di impostare più proprietà delle colonne. Alcune visualizzazioni supportano le proprietà di riga, colonna o cella per modificarne la visualizzazione o il comportamento; consulta la documentazione della visualizzazione per scoprire quali proprietà sono supportate.
Vedi anche: setColumnProperty getColumnProperty |
setFormattedValue(rowIndex, columnIndex, formattedValue)
|
Nessun valore |
Imposta il valore formattato di una cella.
Vedi anche: getFormattedValue |
setProperty(rowIndex, columnIndex, name, value)
|
Nessun valore |
Imposta una proprietà della cella. Alcune visualizzazioni supportano le proprietà di riga, colonna o cella per modificarne il comportamento o la visualizzazione; consulta la documentazione della visualizzazione per scoprire quali sono le proprietà supportate.
Vedi anche: setCell setProperties getProperty |
setProperties(rowIndex, columnIndex, properties)
|
Nessun valore |
Consente di impostare più proprietà della cella. Alcune visualizzazioni supportano le proprietà di riga, colonna o cella per modificarne la visualizzazione o il comportamento; consulta la documentazione della visualizzazione per scoprire quali proprietà sono supportate.
Vedi anche: setCell setProperty getProperty |
setRowProperty(rowIndex, name, value)
|
Nessun valore |
Imposta una proprietà di riga. Alcune visualizzazioni supportano le proprietà di riga, colonna o cella per modificarne il comportamento o la visualizzazione; consulta la documentazione della visualizzazione per scoprire quali sono le proprietà supportate.
Vedi anche: setRowProperties getRowProperty |
setRowProperties(rowIndex, properties)
|
Nessun valore |
Consente di impostare più proprietà delle righe. Alcune visualizzazioni supportano le proprietà di riga, colonna o cella per modificarne il comportamento o la visualizzazione; consulta la documentazione della visualizzazione per scoprire quali proprietà sono supportate.
Vedi anche: setRowProperty getRowProperty |
setTableProperty(name, value)
|
Nessun valore |
Imposta una singola proprietà della tabella. Alcune visualizzazioni supportano le proprietà di tabella, riga, colonna o cella per modificarne il comportamento o la visualizzazione; consulta la documentazione delle visualizzazioni per scoprire quali sono le proprietà supportate.
Vedi anche: setTableProperties getTableProperty |
setTableProperties(properties) |
Nessun valore |
Consente di impostare più proprietà della tabella. Alcune visualizzazioni supportano le proprietà di tabella, riga, colonna o cella per modificarne il comportamento o la visualizzazione; consulta la documentazione delle visualizzazioni per scoprire quali sono le proprietà supportate.
Vedi anche: setTableProperty getTableProperty |
setValue(rowIndex, columnIndex, value) |
Nessun valore |
Imposta il valore di una cella. Oltre a sovrascrivere il valore della cella esistente, questo metodo cancella anche eventuali valori formattati e proprietà della cella.
Vedi anche: setCell, setFormattedValue, setProperty, setProperties |
sort(sortColumns) |
Nessun valore |
Ordina le righe in base alle colonne di ordinamento specificate. DataTable viene modificato da questo metodo. Consulta
getSortedRows() per una descrizione
dei dettagli di ordinamento. Questo metodo non restituisce i dati ordinati.Vedi anche: getSortedRows Esempio: per ordinare i dati in base alla terza colonna e poi alla seconda colonna, utilizza data.sort([{column: 2}, {column: 1}]);
|
toJSON() |
String |
Restituisce una rappresentazione JSON di DataTable che può essere passata al costruttore DataTable . Ad
esempio:
{"cols":[{"id":"Col1","label":"","type":"date"}], "rows":[ {"c":[{"v":"a"},{"v":"Date(2010,10,6)"}]}, {"c":[{"v":"b"},{"v":"Date(2010,10,7)"}]} ] } |
Formato del parametro data letterale JavaScript del costruttore
Puoi inizializzare DataTable
passando un oggetto letterale stringa JavaScript nel parametro data. Questo oggetto viene chiamato oggetto data. Puoi codificare questo oggetto a mano, secondo la descrizione riportata di seguito, oppure puoi utilizzare una libreria Python helper se sai come utilizzare Python e il tuo sito può utilizzarlo. Tuttavia, se vuoi costruire l'oggetto a mano, questa sezione descrive la sintassi.
Innanzitutto, mostriamo un esempio di un semplice oggetto JavaScript che descrive una tabella con tre righe e tre colonne (tipi Stringa, Numero e Data):
{ 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!'} }
Adesso descriviamo la sintassi:
L'oggetto data è composto da due proprietà di primo livello obbligatorie, cols
e
rows
, e da una proprietà p
facoltativa, ovvero una mappa di valori arbitrari.
Nota: tutti i nomi delle proprietà e le costanti delle stringhe mostrati sono sensibili alle maiuscole. Inoltre, le proprietà descritte come valori di stringa devono avere il relativo valore racchiuso tra virgolette.
Ad esempio, se vuoi specificare la proprietà type come numero, questa viene espressa nel seguente modo: type: 'number'
, ma il valore stesso, come numerico, viene espresso nel seguente modo: v: 42
Proprietà cols
cols
è un array di oggetti che descrive l'ID e il tipo di ogni colonna. Ogni proprietà è un oggetto con le seguenti proprietà (sensibili alle maiuscole):
-
type
[Obbligatorio] Tipo di dati dei dati nella colonna. Supporta i seguenti valori stringa (gli esempi includono la proprietà v: descritta più avanti):-
"boolean" - Valore booleano JavaScript ("true" o "false"). Valore di esempio:
v:'true'
-
'number' - Valore numerico JavaScript. Valori di esempio:
v:7
,v:3.14
,v:-55
- 'string' - Valore della stringa JavaScript. Valore di esempio:
v:'hello'
-
"date": oggetto Date JavaScript (mese in base zero), con l'ora troncata. Valore di esempio:
v:new Date(2008, 0, 15)
-
'datetime' - Oggetto Date JavaScript inclusa l'ora. Valore di esempio:
v:new Date(2008, 0, 15, 14, 30, 45)
-
"timeofday": array di tre numeri e un quarto facoltativo, che rappresenta l'ora
(0 indica mezzanotte), i minuti, i secondi e i millisecondi facoltativi. Valori di esempio:
v:[8, 15, 0]
,v: [6, 12, 1, 144]
-
"boolean" - Valore booleano JavaScript ("true" o "false"). Valore di esempio:
-
id
[Facoltativo] ID stringa della colonna. Deve essere univoco nella tabella. Utilizza caratteri alfanumerici di base, in modo che la pagina host non richieda caratteri di escape elaborati per accedere alla colonna in JavaScript. Fai attenzione a non scegliere una parola chiave JavaScript. Esempio:id:'col_1'
-
label
[Facoltativo] Valore della stringa mostrato per questa colonna da alcune visualizzazioni. Esempio:label:'Height'
-
pattern
[Facoltativo] Pattern stringa utilizzato da un'origine dati per formattare i valori numerici, di date o di ore delle colonne. Questo è solo un riferimento; probabilmente non avrai bisogno di leggere il pattern e non è necessario che esista. Il client di visualizzazione di Google non utilizza questo valore, che legge il valore formattato della cella. SeDataTable
proviene da un'origine dati in risposta a una query con una clausola format, il pattern specificato in quella clausola probabilmente verrà restituito in questo valore. Gli standard di pattern consigliati sono DecimalFormat e SimpleDateFormat di ICU. -
p
[Facoltativo] Un oggetto che è una mappa di valori personalizzati applicati alla cella. Questi valori possono essere di qualsiasi tipo JavaScript. Se la visualizzazione supporta proprietà a livello di cella, queste verranno descritte; in caso contrario, questa proprietà verrà ignorata. Esempio:p:{style: 'border: 1px solid green;'}
.
Esempio di cols
cols: [{id: 'A', label: 'NEW A', type: 'string'}, {id: 'B', label: 'B-label', type: 'number'}, {id: 'C', label: 'C-label', type: 'date'}]
La proprietà rows
contiene un array di oggetti riga.
Ogni oggetto riga ha una proprietà obbligatoria denominata c
, che è un array di celle in
quella riga. Ha anche una proprietà facoltativa p
che definisce una mappa di valori personalizzati arbitrari
da assegnare all'intera riga. Se la visualizzazione supporta proprietà a livello di riga, queste verranno descritte; in caso contrario, questa proprietà verrà ignorata.
Ogni cella della tabella è descritta da un oggetto con le seguenti proprietà:
-
v
[Facoltativo] Il valore della cella. Il tipo di dati deve corrispondere al tipo di dati della colonna. Se la cella è nulla, la proprietàv
deve essere nulla, anche se può comunque avere proprietàf
ep
. -
f
[Facoltativo] Una versione stringa del valorev
, formattata per la visualizzazione. In genere i valori corrisponderanno, sebbene non sia necessario, quindi se specifichiDate(2008, 0, 1)
perv
, devi specificare "1 gennaio 2008" o una stringa di questo tipo per questa proprietà. Questo valore non viene verificato rispetto al valorev
. La visualizzazione non utilizzerà questo valore per il calcolo, ma solo come etichetta per la visualizzazione. Se omesso, verrà generata automaticamente una versione stringa div
utilizzando il formattatore predefinito. I valorif
possono essere modificati utilizzando il tuo formattatore, impostati consetFormattedValue()
osetCell()
oppure recuperati congetFormattedValue()
. -
p
[Facoltativo] Un oggetto che è una mappa di valori personalizzati applicati alla cella. Questi valori possono essere di qualsiasi tipo JavaScript. Se la visualizzazione supporta proprietà a livello di cella, queste verranno descritte. Queste proprietà possono essere recuperate con i metodigetProperty()
egetProperties()
. Esempio:p:{style: 'border: 1px solid green;'}
.
Le celle nell'array di righe devono essere nello stesso ordine delle descrizioni delle colonne in
cols
. Per indicare una cella null, puoi specificare null
, lasciare uno spazio vuoto per una
cella in un array oppure omettere i membri finali dell'array. Pertanto, per indicare una riga con un valore nullo per le prime due celle, puoi specificare [ , , {cell_val}]
o [null, null, {cell_val}]
.
Ecco un esempio di oggetto tabella con tre colonne riempite con tre righe di dati:
{ 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'} ]} ] }
Proprietà
La proprietà p
a livello di tabella è una mappa dei valori personalizzati applicati all'intero
DataTable
. Questi valori possono essere di qualsiasi tipo JavaScript. Se la visualizzazione supporta proprietà a livello di tabella di dati, queste saranno descritte; in caso contrario, questa proprietà sarà disponibile per l'uso da parte dell'applicazione.
Esempio: p:{className: 'myDataTable'}
.
Classe DataView
Una visualizzazione di sola lettura di una DataTable sottostante. Un DataView
consente di selezionare solo un sottoinsieme di colonne e/o righe. Consente inoltre di riordinare colonne/righe e duplicare colonne/righe.
Una visualizzazione è una finestra in tempo reale sull'elemento DataTable
sottostante, non un'istantanea statica dei dati.
Tuttavia, devi comunque prestare attenzione quando modifichi la struttura della tabella stessa, come descritto qui:
-
L'aggiunta o la rimozione di colonne dalla tabella sottostante non verrà applicata dalla vista
e potrebbe causare un comportamento imprevisto nella vista. Per accettare queste modifiche, devi creare un nuovo
DataView
daDataTable
. -
L'aggiunta o la rimozione di righe dalla tabella sottostante è sicura e le modifiche verranno propagate immediatamente alla vista (ma devi chiamare
draw()
su qualsiasi visualizzazione dopo questa modifica per eseguire il rendering del nuovo set di righe). Tieni presente che se la vista ha filtrato le righe richiamando uno dei metodisetRows() or hideRows()
e aggiungi o rimuovi righe dalla tabella sottostante, il comportamento è imprevisto; devi creare un nuovoDataView
per riflettere la nuova tabella. -
La modifica dei valori delle celle nelle celle esistenti è sicura e le modifiche vengono immediatamente propagate in
DataView
(ma devi chiamaredraw()
su qualsiasi visualizzazione dopo questa modifica per eseguire il rendering dei nuovi valori delle celle).
È anche possibile creare un DataView
da un altro DataView
. Tieni presente che ogni volta che viene menzionata una tabella o una vista sottostante, si fa riferimento al livello immediatamente inferiore a questo livello. In altre parole, si riferisce all'oggetto dati utilizzato per creare questo
DataView
.
DataView
supporta anche le colonne calcolate, ovvero il cui valore viene
calcolato in tempo reale utilizzando una funzione da te specificata. Quindi, ad esempio, puoi includere una colonna che corrisponda alla somma di due colonne precedenti o una colonna che calcola e mostra il trimestre di calendario di una data di un'altra colonna. Per ulteriori dettagli, consulta la pagina setColumns()
.
Quando modifichi un DataView
nascondendo o mostrando righe o colonne, la visualizzazione
rimarrà invariata finché non richiamerai draw()
sulla visualizzazione.
Puoi combinare DataView.getFilteredRows()
con DataView.setRows()
per creare un DataView
con un sottoinsieme di dati interessante, come mostrato qui:
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});
Costruttori
Esistono due modi per creare una nuova istanza DataView
:
Costruttore 1
var myView = new google.visualization.DataView(data)
data
-
Un
DataTable
oDataView
utilizzato per inizializzare la vista. Per impostazione predefinita, la visualizzazione contiene tutte le colonne e le righe nella tabella o nella vista sottostante, nell'ordine originale. Per nascondere o mostrare righe o colonne in questa visualizzazione, chiama i metodiset...()
ohide...()
appropriati.
Vedi anche:
setColumns(), hideColumns(), setRows(), hideRows().
Costruttore 2
Questo costruttore crea un nuovo
DataView
assegnando un oggetto DataView
serializzato a un DataTable
.
Ti aiuta a ricreare il DataView
che hai serializzato utilizzando
DataView.toJSON()
.
var myView = google.visualization.DataView.fromJSON(data, viewAsJson)
- dati
-
L'oggetto
DataTable
che hai utilizzato per creareDataView
, su cui hai chiamatoDataView.toJSON()
. Se questa tabella è diversa da quella originale, i risultati non sono prevedibili. - viewAsJson
-
La stringa JSON restituita da
DataView.toJSON()
. Questa è una descrizione delle righe da mostrare o nascondere nella tabella di dati data.
Metodi
Metodo | Valore restituito | Descrizione |
---|---|---|
Vedi le descrizioni in DataTable . |
Come i metodi DataTable equivalenti, ad eccezione del fatto che gli indici di riga/colonna fanno riferimento all'indice nella vista e non alla tabella/vista sottostante.
|
|
getTableColumnIndex(viewColumnIndex)
|
Numero |
Restituisce l'indice nella tabella (o visualizzazione) sottostante di una determinata colonna specificata dal relativo indice in questa visualizzazione.
Esempio: se |
getTableRowIndex(viewRowIndex) |
Numero |
Restituisce l'indice nella tabella (o vista) sottostante di una determinata riga specificata dal relativo indice in questa visualizzazione.
Esempio: se |
getViewColumnIndex(tableColumnIndex)
|
Numero |
Restituisce l'indice in questa visualizzazione mappato a una determinata colonna specificata dal relativo indice nella tabella (o vista sottostante). Se esiste più di un indice di questo tipo, restituisce il primo (più piccolo). Se questo indice non esiste (la colonna specificata non è nella visualizzazione), restituisce -1.
Esempio: se |
getViewColumns() |
array di numeri |
Restituisce le colonne della visualizzazione in ordine. In altre parole, se chiami |
getViewRowIndex(tableRowIndex) |
Numero |
Restituisce l'indice in questa vista mappato a una determinata riga specificata dal relativo indice nella tabella (o vista sottostante). Se esiste più di un indice di questo tipo, restituisce il primo (più piccolo). Se questo indice non esiste (la riga specificata non è nella visualizzazione), restituisce -1.
Esempio: se |
getViewRows() |
array di numeri |
Restituisce le righe della visualizzazione, in ordine. In altre parole, se chiami |
hideColumns(columnIndexes) |
Nessuno |
Nasconde le colonne specificate dalla visualizzazione corrente.
Esempio: se hai una tabella con 10 colonne e chiami
|
hideRows(min, max) |
Nessun valore |
Nasconde tutte le righe con indici compresi tra min e max (inclusi) dalla visualizzazione corrente.
Questa è una sintassi pratica per |
hideRows(rowIndexes) |
Nessun valore |
Nasconde le righe specificate dalla visualizzazione corrente.
Esempio: se hai una tabella con 10 righe e chiami
|
setColumns(columnIndexes) |
Nessun valore |
Specifica quali colonne sono visibili in questa visualizzazione. Le colonne non specificate verranno nascoste. Si tratta di un array di indici di colonna nella tabella/vista sottostante o nelle colonne calcolate. Se non chiami questo metodo, l'impostazione predefinita mostra tutte le colonne. L'array può anche contenere duplicati per mostrare la stessa colonna più volte. Le colonne verranno mostrate nell'ordine specificato.
Esempi: // 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) |
Nessun valore |
Imposta le righe in questa vista in modo che siano tutti gli indici (nella tabella/vista sottostante) compresi tra il valore minimo e massimo (inclusi). Questa è una sintassi pratica per |
setRows(rowIndexes) |
Nessun valore |
Imposta le righe visibili in questa visualizzazione in base ai numeri di indice della tabella/vista sottostante.
Esempio: per creare una vista con le righe 3 e zero di una tabella/vista sottostante: |
toDataTable() |
DataTable |
Restituisce un oggetto DataTable completato con le righe e le colonne visibili di
DataView .
|
toJSON() |
stringa |
Restituisce una rappresentazione stringa di DataView . Questa stringa non contiene i
dati effettivi, ma solo le impostazioni specifiche di DataView , come le righe
e le colonne visibili. Puoi archiviare questa stringa e passarla al costruttore
DataView.fromJSON()
statico per ricreare questa vista. Non saranno incluse le
colonne generate.
|
Classe ChartWrapper
Una classe ChartWrapper
viene utilizzata per aggregare il grafico e gestire tutte le query di caricamento, disegno e origine dati per il grafico. La classe espone metodi pratici per impostare i valori nel grafico e disegnarlo. Questa classe semplifica la lettura da un'origine dati, perché non è necessario creare un gestore di callback delle query. Puoi utilizzarlo anche per salvare facilmente un grafico per riutilizzarlo.
Un altro vantaggio dell'utilizzo di ChartWrapper
è che puoi ridurre il numero di caricamenti della libreria grazie al caricamento dinamico. Inoltre, non devi caricare i pacchetti in modo esplicito, poiché ChartWrapper
si occuperà della ricerca e del caricamento dei pacchetti di grafici.
Per informazioni dettagliate, consulta gli esempi riportati di seguito.
Tuttavia, al momento ChartWrapper
propaga solo un sottoinsieme di eventi generati dai grafici: select, ready ed error. Gli altri eventi non vengono trasmessi tramite l'istanza ChartWrapper. Per riceverne altri, devi chiamare getChart()
e sottoscrivere gli eventi direttamente nell'handle del grafico, come mostrato qui:
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!"); } }
Costruttore
ChartWrapper(opt_spec)
- opt_spec
- [Facoltativo] - Un oggetto JSON che definisce il grafico o una versione stringa serializzata dell'oggetto. Il formato di questo oggetto è mostrato nella documentazione didrawChart(). Se non specificato, devi impostare tutte le proprietà appropriate utilizzando i metodi set... esposti da questo oggetto.
Metodi
ChartWrapper espone i seguenti metodi aggiuntivi:
Metodo | Tipo restituito | Descrizione |
---|---|---|
draw(opt_container_ref) |
Nessun valore |
Disegna il grafico. Per visualizzare le modifiche, devi chiamare questo metodo dopo qualsiasi modifica apportata al grafico o ai dati.
|
toJSON() |
String | Restituisce una versione stringa della rappresentazione JSON del grafico. |
clone() |
ChartWrapper | Restituisce una copia diretta del wrapper del grafico. |
getDataSourceUrl() |
String | Se il grafico riceve i dati da un'origine dati, restituisce l'URL per questa origine dati. In caso contrario, restituisce null. |
getDataTable() |
google.visualization.DataTable |
Se questo grafico ottiene i dati da un elemento
Eventuali modifiche apportate all'oggetto restituito verranno applicate nel grafico la prossima volta
che chiami |
getChartType() |
String |
Il nome della classe del grafico aggregato. Se questo è un grafico di Google, il nome non sarà qualificato
con google.visualization . Ad esempio, se si trattasse di un grafico ad albero, verrebbe restituito "Treemap" anziché "google.visualization.treemap".
|
getChartName() |
String | Restituisce il nome del grafico assegnato da setChartName() . |
getChart() |
Riferimento agli oggetti del grafico |
Restituisce un riferimento al grafico creato da questo ChartWrapper, ad esempio
google.visualization.BarChart
o
google.visualization.ColumnChart
.
Verrà restituito un valore nullo fino a quando non avrai chiamato draw() sull'oggetto ChartWrapper e verrà generato un evento pronto. I metodi chiamati sull'oggetto restituito si rifletteranno nella pagina.
|
getContainerId() |
String | L'ID dell'elemento contenitore DOM del grafico. |
getQuery() |
String | La stringa di query per questo grafico, se presente, esegue una query su un'origine dati. |
getRefreshInterval() |
Numero | Qualsiasi intervallo di aggiornamento per questo grafico, se esegue una query su un'origine dati. Zero indica che non è stato eseguito alcun aggiornamento. |
getOption(key, opt_default_val) |
Tutti i tipi |
Restituisce il valore dell'opzione del grafico specificato
|
getOptions() |
Oggetto | Restituisce l'oggetto opzioni per il grafico. |
getView() |
Oggetto OR array |
Restituisce l'oggetto inizializzatore DataView , nello stesso formato di dataview.toJSON() , o un array di questi oggetti.
|
setDataSourceUrl(url) |
Nessun valore | Imposta l'URL di un'origine dati da utilizzare per questo grafico. Se imposti anche una tabella di dati per questo oggetto, l'URL dell'origine dati verrà ignorato. |
setDataTable(table) |
Nessun valore | Imposta la tabella di dati per il grafico. Passa uno dei seguenti valori: nullo, un oggetto DataTable, una rappresentazione JSON di una tabella DataTable oppure un array che segue la sintassi di arrayToDataTable(). |
setChartType(type) |
Nessun valore |
Imposta il tipo di grafico. Inserisci il nome della classe del grafico aggregato. Se questo è un grafico di Google,
non qualificarlo con google.visualization . Ad esempio, per un grafico a torta, inserisci "Grafico a torta".
|
setChartName(name) |
Nessun valore | Imposta un nome arbitrario per il grafico. Questa informazione non viene mostrata in nessun punto del grafico, a meno che non venga appositamente progettato per utilizzarlo in un grafico personalizzato. |
setContainerId(id) |
Nessun valore | Imposta l'ID dell'elemento DOM contenitore per il grafico. |
setQuery(query_string) |
Nessun valore | Imposta una stringa di query se il grafico esegue query su un'origine dati. Devi impostare anche l'URL dell'origine dati se specifichi questo valore. |
setRefreshInterval(interval) |
Nessun valore | Imposta l'intervallo di aggiornamento per questo grafico, se esegue una query su un'origine dati. Devi impostare anche un URL dell'origine dati se specifichi questo valore. Zero indica che non è stato eseguito alcun aggiornamento. |
setOption(key, value) |
Nessun valore |
Imposta un singolo valore dell'opzione del grafico, dove key è il nome dell'opzione e value è il valore. Per annullare l'impostazione di un'opzione, passa un valore nullo per il valore. Tieni presente che key può essere un
nome qualificato, ad esempio 'vAxis.title' .
|
setOptions(options_obj) |
Nessun valore | Imposta un oggetto opzioni completo per un grafico. |
setView(view_spec) |
Nessun valore |
Imposta un oggetto inizializzatore DataView , che funge da filtro sui dati
sottostanti. Il wrapper grafico deve contenere dati sottostanti di una tabella di dati o di un'origine dati a cui applicare questa vista. Puoi passare in una stringa o in un oggetto inizializzatore DataView , come quello restituito da dataview.toJSON() . Puoi anche passare in un array di oggetti inizializzatori DataView , nel qual caso il primo DataView dell'array viene applicato ai dati sottostanti per creare una nuova tabella di dati, mentre il secondo DataView viene applicato alla tabella di dati risultante dall'applicazione del primo DataView e così via.
|
Eventi
L'oggetto ChartWrapper genera i seguenti eventi. Tieni presente che devi chiamare
ChartWrapper.draw()
prima che vengano generati eventi.
Nome | Descrizione | Proprietà |
---|---|---|
error |
Attivato quando si verifica un errore durante il tentativo di rendering del grafico. | id, messaggio |
ready |
Il grafico è pronto per le chiamate di metodi esterne. Se vuoi interagire con il grafico e richiamare metodi dopo averlo tracciato, devi impostare un listener per questo evento prima di chiamare il metodo draw e richiamarli solo dopo l'attivazione dell'evento.
|
Nessun valore |
select |
Attivato quando l'utente fa clic su una barra o una legenda. Quando si seleziona un elemento del grafico, viene selezionata la cella corrispondente nella tabella dati; quando si seleziona una legenda, viene selezionata la colonna corrispondente nella tabella dati. Per sapere quali elementi sono stati selezionati, chiama
ChartWrapper.getChart().
getSelection() . Tieni presente che verrà visualizzato
solo quando il tipo di grafico sottostante genera un evento di selezione.
|
Nessun valore |
Esempio
I due snippet seguenti creano un grafico a linee equivalente. Il primo esempio utilizza la notazione letterale JSON per definire il grafico, il secondo utilizza i metodi ChartWrapper per impostare questi valori.
<!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>
Stesso grafico, ora con metodi 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>
ClasseChartEditor
La classe ChartEditor
viene utilizzata per aprire una finestra di dialogo in-page che consente a un utente di
personalizzare una visualizzazione all'istante.
Per utilizzare ChartEditor:
-
Carica il pacchetto
charteditor
. Ingoogle.charts.load()
, carica il pacchetto "charteditor". Non è necessario caricare i pacchetti per il tipo di grafico visualizzato nell'editor; qualsiasi pacchetto verrà caricato automaticamente dall'editor di grafici, se necessario. -
Crea un oggetto
ChartWrapper
che definisca il grafico che l'utente può personalizzare. Questo grafico verrà mostrato nella finestra di dialogo e l'utente utilizza l'editor per riprogettarlo, cambiare i tipi di grafico o persino modificare i dati di origine. -
Crea una nuova istanza di ChartEditor e registrati per rimanere in ascolto dell'evento "ok". Questo evento viene generato quando l'utente fa clic sul pulsante "OK" nella
finestra di dialogo. Una volta ricevuto, devi chiamare
ChartEditor.getChartWrapper()
per recuperare il grafico modificato dall'utente. -
Chiama
ChartEditor.openDialog()
, passando perChartWrapper
. Viene visualizzata la finestra di dialogo. I pulsanti della finestra di dialogo consentono all'utente di chiudere l'editor. L'istanzaChartEditor
è disponibile purché rientri nell'ambito; non viene eliminata automaticamente dopo la chiusura della finestra di dialogo da parte dell'utente. - Per aggiornare il grafico nel codice, chiama
setChartWrapper()
.
Metodi
Metodo | Valore restituito | Descrizione |
---|---|---|
openDialog(chartWrapper, opt_options) |
null |
Apre l'editor del grafico come finestra di dialogo incorporata nella pagina. La funzione restituisce immediatamente, non attende la chiusura della finestra di dialogo. Se non perdi l'ambito dell'istanza, puoi richiamare
|
getChartWrapper() |
ChartWrapper |
Restituisce un ChartWrapper che rappresenta il grafico, con modifiche dell'utente. |
setChartWrapper(chartWrapper) |
null |
Utilizza questo metodo per aggiornare il grafico visualizzato nell'editor.
chartWrapper: un oggetto |
closeDialog() |
null | Chiude la finestra di dialogo dell'editor del grafico. |
Opzioni
L'editor di grafici supporta le seguenti opzioni:
Nome | Tipo | Predefinita | Descrizione |
---|---|---|---|
dataSourceInput |
Handle dell'elemento o "urlbox" | null |
Utilizza questa opzione per consentire all'utente di specificare un'origine dati per il grafico. Questa proprietà può avere uno di due valori:
|
Eventi
L'editor del grafico genera i seguenti eventi:
Nome | Descrizione | Proprietà |
---|---|---|
ok |
Attivato quando l'utente fa clic sul pulsante "OK" nella finestra di dialogo. Dopo aver ricevuto questo metodo, devi chiamare getChartWrapper() per recuperare il grafico configurato dall'utente.
|
Nessuno |
cancel |
Attivato quando l'utente fa clic sul pulsante "Annulla" nella finestra di dialogo. | Nessuno |
Esempio
Il codice di esempio che segue apre una finestra di dialogo dell'editor di grafici con un grafico a linee compilato. Se l'utente
fa clic su "Ok", il grafico modificato verrà salvato nell'elemento <div>
specificato nella pagina.
<!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>
Metodi di manipolazione dei dati
Lo spazio dei nomi google.visualization.data
contiene metodi statici per eseguire operazioni di tipo SQL sugli oggetti DataTable
, ad esempio unirli o un raggruppamento in base al valore di colonna.
Lo spazio dei nomi google.visualization.data
espone i seguenti metodi:
Metodo | Descrizione |
---|---|
google.visualization.data.group
|
Esegue un'azione SQL GROUP BY per restituire una tabella raggruppata per valori nelle colonne specificate. |
google.visualization.data.join
|
Unisce due tabelle di dati in una o più colonne chiave. |
group()
Prende un oggetto DataTable
compilato ed esegue un'operazione GROUP BY di tipo SQL, restituendo una tabella con righe raggruppate in base ai valori di colonna specificati. Tieni presente che questa operazione non modifica
l'input DataTable
.
La tabella restituita include una riga per ogni combinazione di valori nelle colonne chiave specificate. Ogni riga include le colonne chiave, oltre a una colonna con un valore di colonna aggregato su tutte le righe che corrispondono alla combinazione di chiavi (ad esempio, una somma o un conteggio di tutti i valori nella colonna specificata).
Lo spazio dei nomi google.visualization.data
include diversi valori di aggregazione utili
(ad esempio sum e
count), ma puoi definirne uno personalizzato (ad esempio,
standardDeviation o secondHighest). Le istruzioni su come definire il tuo aggregatore sono fornite dopo la descrizione del metodo.
Sintassi
google.visualization.data.group(data_table, keys, columns)
- data_table
-
L'input
DataTable
. Non verrà modificato chiamandogroup()
. - tasti
-
Un array di numeri e/o oggetti che specifica le colonne in base a cui raggruppare. La tabella dei risultati include tutte le colonne di questo array e tutte le colonne di columns. Se è un numero, si tratta di un indice di colonna dell'input
DataTable
in base al quale raggruppare. Se si tratta di un oggetto, includerà una funzione in grado di modificare la colonna specificata (ad esempio, aggiungi 1 al valore nella colonna). L'oggetto deve avere le seguenti proprietà:- colonna: un numero che rappresenta un indice di colonna da dt a cui applicare la trasformazione.
- modifier - Una funzione che accetta un valore (il valore della cella in quella colonna per ogni riga) e restituisce il valore modificato. Questa funzione viene utilizzata per modificare il valore della colonna al fine di agevolare il raggruppamento: ad esempio, richiamando una funzione WhatQuarter che calcola un trimestre da una colonna di date, in modo che l'API possa raggruppare le righe per trimestre. Il valore calcolato viene visualizzato nelle colonne chiave della tabella restituita. Questa funzione può essere dichiarata in linea all'interno di questo oggetto oppure può essere una funzione definita altrove nel codice (deve rientrare nell'ambito della chiamata). L'API fornisce una semplice funzione di modifica; qui sono riportate le istruzioni su come creare le tue funzioni più utili. Devi conoscere il tipo di dati che questa funzione può accettare e chiamarlo solo su colonne di quel tipo. Devi anche conoscere il tipo restituito di questa funzione e dichiararlo nella proprietà type descritta di seguito.
- type - Il tipo restituito dalla funzione modifier. Dovrebbe essere un nome di tipo di stringa JavaScript, ad esempio "number" o "boolean".
-
label - [Facoltativo] Un'etichetta di stringa per assegnare questa colonna nel
valore
DataTable
restituito. -
id - [Facoltativo] Un ID stringa per assegnare questa colonna nel valore
DataTable
restituito.
Esempi:[0]
,[0,2]
,[0,{column:1, modifier:myPlusOneFunc, type:'number'},2]
- colonne
-
[Facoltativo] Consente di specificare quali colonne, oltre alle colonne chiave, includere nella tabella di output. Poiché tutte le righe nel gruppo di righe sono compresse in una singola riga di output, devi determinare quale valore visualizzare per quel gruppo di righe. Ad esempio, puoi scegliere di mostrare il valore della colonna della prima riga dell'insieme o una media di tutte le righe del gruppo.
colonne è un array di oggetti con le seguenti proprietà:
- colonna - Un numero che specifica l'indice della colonna da visualizzare.
- aggregazione - Una funzione che accetta un array di tutti i valori di questa colonna nel gruppo di righe e restituisce un singolo valore da visualizzare nella riga dei risultati. Il valore restituito deve essere del tipo specificato dalla proprietà type dell'oggetto. I dettagli sulla creazione di una funzione di aggregazione sono riportati di seguito. Devi sapere quali tipi di dati sono accettati da questo metodo e chiamarli solo nelle colonne del tipo appropriato. L'API offre diverse utili funzioni di aggregazione. Consulta Funzioni di aggregazione fornite di seguito per un elenco oppure Creazione di una funzione di aggregazione per scoprire come scrivere una funzione di aggregazione personalizzata.
- type - Il tipo restituito della funzione di aggregazione. Deve essere un nome di tipo di stringa JavaScript, ad esempio "number" o "boolean".
- label - [Facoltativo] Un'etichetta di stringa da applicare a questa colonna nella tabella restituita.
- id - [Facoltativo] Un ID stringa da applicare a questa colonna nella tabella restituita.
Valore restituito
Un elemento DataTable
con una colonna per ogni colonna elencata in chiavi e una colonna per ogni colonna elencata in colonne. La tabella è ordinata in base a righe chiave, da sinistra a destra.
Esempio
// 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
Funzioni di modifica disponibili
L'API fornisce le seguenti funzioni di modifica che puoi passare nelle chiavi. modifier per personalizzare il comportamento di raggruppamento.
Funzione | Tipo di array di input | Tipo restituito | Descrizione |
---|---|---|---|
google.visualization.data.month |
Data | numero | Se viene specificata una data, viene restituito il valore del mese in base zero (0, 1, 2 e così via). |
Funzioni di aggregazione fornite
L'API fornisce le seguenti funzioni di aggregazione che puoi passare nelle colonne. dell'array di parametri di aggregazione.
Funzione | Tipo di array di input | Tipo restituito | Descrizione |
---|---|---|---|
google.visualization.data.avg |
numero | numero | Il valore medio dell'array passato. |
google.visualization.data.count |
qualsiasi tipo | numero | Il numero di righe nel gruppo. Vengono conteggiati i valori null e duplicati. |
google.visualization.data.max |
numero, stringa, Data | number, string, Date, null | Il valore massimo nell'array. Per le stringhe, si tratta del primo elemento di un elenco ordinato in modo grammaticale; per i valori Data, si tratta dell'ultima data. I valori null vengono ignorati. Restituisce null se non è previsto un valore massimo. |
google.visualization.data.min |
numero, stringa, Data | number, string, Date, null | Il valore minimo nell'array. Per le stringhe, è l'ultimo elemento di un elenco ordinato in modo lessicografico; per i valori Data, è la prima data. I valori null vengono ignorati. Restituisce null se non è previsto un valore minimo. |
google.visualization.data.sum |
numero | numero | La somma di tutti i valori nell'array. |
Creazione di una funzione di modifica
Puoi creare una funzione di modifica per eseguire una semplice trasformazione su valori chiave prima che la funzione group()
gruppi le righe. Questa funzione prende un singolo valore di cella, esegue
un'azione su di esso (ad esempio, aggiunge 1 al valore) e lo restituisce. I tipi di input e restituiti non devono essere dello stesso tipo, ma il chiamante deve conoscere i tipi di input e output. Di seguito è riportato un esempio di funzione che accetta una data e restituisce il trimestre:
// Input type: Date // Return type: number (1-4) function getQuarter(someDate) { return Math.floor(someDate.getMonth()/3) + 1; }
Creazione di una funzione di aggregazione
Puoi creare una funzione di aggregazione che accetta un insieme di valori di colonna in un gruppo di righe e restituisca un singolo numero, ad esempio restituendo un conteggio o una media di valori. Di seguito è riportata un'implementazione della funzione di aggregazione del conteggio fornita, che restituisce un conteggio del numero di righe presenti nel gruppo di righe:
// Input type: Array of any type // Return type: number function count(values) { return values.length; }
join()
Questo metodo unisce due tabelle di dati (DataTable
o DataView
oggetti) in un'unica tabella dei risultati, simile a un'istruzione SQL JOIN. Puoi specificare una o più coppie di colonne (colonne chiave) tra le due tabelle e la tabella di output include le righe in base a un metodo di join specificato: solo le righe in cui entrambe le chiavi corrispondono, tutte le righe di una tabella o tutte le righe di entrambe le tabelle, indipendentemente dalla corrispondenza delle chiavi. La tabella dei risultati include solo le colonne chiave ed eventuali colonne aggiuntive specificate. Tieni presente che dt2 non può avere chiavi duplicate, al contrario di dt1. Il termine "chiave" indica la combinazione di tutti i valori delle colonne chiave, non di uno specifico valore della colonna chiave. Di conseguenza, se una riga contiene valori di celle A | B | C e le colonne 0 e 1 sono colonne chiave, la chiave per quella riga è AB.
Sintassi
google.visualization.data.join(dt1, dt2, joinMethod, keys, dt1Columns, dt2Columns);
- dt1
- Un
DataTable
compilato da unire con dt2. - dt2
-
Un elemento
DataTable
compilato da unire a dt1. Questa tabella non può avere più chiavi identiche (in cui una chiave è una combinazione di valori di colonne chiave). - joinMethod
-
Una stringa che specifica il tipo di join. Se dt1 ha più righe che corrispondono a una riga dt2, la tabella di output includerà tutte le righe dt1 corrispondenti. Scegli tra i seguenti valori:
- "full": la tabella di output include tutte le righe di entrambe le tabelle, indipendentemente dalla corrispondenza delle chiavi. Le righe senza corrispondenza avranno voci di cella null; le righe corrispondenti vengono unite.
- "inner" - Il join completo filtrato in modo da includere solo le righe in cui le chiavi corrispondono.
- "left": la tabella di output include tutte le righe da dt1, indipendentemente dal fatto che esistano o meno righe corrispondenti da dt2.
- "right" - La tabella di output include tutte le righe da dt2, indipendentemente dal fatto che esistano o meno righe corrispondenti da dt1.
- tasti
-
Un array di colonne chiave da confrontare da entrambe le tabelle. Ogni coppia è un array di due elementi: la prima è una chiave in dt1, la seconda una chiave in dt2. Questo array può specificare le colonne in base all'indice, all'ID o all'etichetta. Consulta
getColumnIndex
.
Le colonne devono essere dello stesso tipo in entrambe le tabelle. Tutte le chiavi specificate devono corrispondere in base alla regola specificata da joinMethod per poter includere una riga della tabella. Le colonne chiave sono sempre incluse nella tabella di output. Solo dt1, la tabella a sinistra, può includere chiavi duplicate; le chiavi in dt2 devono essere univoche. In questo caso, il termine "chiave" indica un insieme univoco di colonne chiave, non singoli valori di colonna. Ad esempio, se le colonne chiave fossero A e B, la seguente tabella avrebbe solo coppie chiave-valore univoche (e potrebbe quindi essere utilizzata come dt2):A B Gianni Rosso Gianni di colore blu Fred Rosso [[0,0], [2,1]]
confronta i valori della prima colonna in entrambe le tabelle e della terza colonna di dt1 con la seconda colonna di dt1. - dt1Columns
-
Un array di colonne dt1 da includere nella tabella di output, oltre alle colonne chiave di dt1. Questo array può specificare le colonne in base all'indice, all'ID o all'etichetta. Consulta
getColumnIndex
. - dt2Columns
-
Un array di colonne dt2 da includere nella tabella di output, oltre alle colonne chiave di dt2. Questo array può specificare le colonne in base all'indice, all'ID o all'etichetta. Consulta
getColumnIndex
.
Valore restituito
Un elemento DataTable
con le colonne chiave dt1Columns e dt2Columns. Questa tabella è ordinata in base alle colonne chiave, da sinistra a destra. Quando joinMethod è "inner", tutte le celle chiave devono essere compilate. Per altri metodi di join, se non viene trovata alcuna chiave corrispondente, la tabella avrà un valore null per tutte le celle chiave senza corrispondenza.
Esempi
*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
Formattatori
L'API Google Visualization fornisce formatter che possono essere utilizzati per riformattare i dati in una visualizzazione. Questi formattatori modificano il valore formattato della colonna specificata in tutte le righe. Ricorda:
- I formattatori modificano solo i valori formattati, non i valori sottostanti. Ad esempio, il valore visualizzato è "1000,00 $", ma il valore sottostante è comunque "1000".
- I formattatori hanno effetto su una sola colonna alla volta; per riformattare più colonne, applica un formattatore a ogni colonna che vuoi modificare.
- Se utilizzi anche i formattatori definiti dall'utente, alcuni formattatori di visualizzazione di Google sostituiranno tutti i formattatori definiti dall'utente.
- Ottieni l'oggetto
DataTable
compilato. - Per ogni colonna che vuoi riformattare:
- Crea un oggetto che specifichi tutte le opzioni per il tuo formattatore. Si tratta di un oggetto JavaScript di base con un insieme di proprietà e valori. Consulta la documentazione del formattatore per verificare quali proprietà sono supportate. (Facoltativamente, puoi passare un oggetto di notazione letterale oggetto specificando le opzioni.)
- Crea il formattatore, passando l'oggetto opzioni.
-
Richiama
formatter
.format(table, colIndex)
, trasmettendo il valore diDataTable
e il numero di colonna (in base zero) dei dati da riformattare. Tieni presente che puoi applicare un solo formattatore a ogni colonna; l'applicazione di un secondo formattatore semplicemente sovrascriverà gli effetti del primo.
Importante:molti formattatori richiedono ai tag HTML di visualizzare una formattazione speciale; se la visualizzazione supporta un'opzioneallowHtml
, dovresti impostarla su true.
La formattazione effettiva applicata ai dati deriva dalle impostazioni internazionali con cui è stata caricata l'API. Per maggiori dettagli, consulta la sezione sul caricamento dei grafici con impostazioni internazionali specifiche .
Importante: i formattatori possono essere utilizzati solo con un elemento DataTable
; non con un elemento DataView
(gli oggetti DataView
sono di sola lettura).
Di seguito sono riportati i passaggi generali per utilizzare un formattatore:
Ecco un esempio di come modificare i valori di data formattati di una colonna di date per utilizzare un formato di data esteso ("1 gennaio 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});
La maggior parte dei formattatori espone i seguenti due metodi:
Metodo | Descrizione |
---|---|
google.visualization.formatter_name(options) |
Costruttore, dove formatter_name è un nome formatterclass specifico.
// 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) |
Riformatta i dati nella colonna specificata.
|
L'API di visualizzazione di Google fornisce i seguenti formattatori:
Nome formattatore | Descrizione |
---|---|
ArrowFormat | Aggiunge una Freccia su o una Freccia giù, che indica se il valore della cella è superiore o inferiore a un valore specificato. |
BarFormat | Aggiunge una barra colorata, la cui direzione e il cui colore indicano se il valore della cella è superiore o inferiore a un valore specificato. |
ColorFormat | Colora una cella a seconda che i valori rientrino in un intervallo specificato. |
DateFormat | Formatta un valore Date o DateTime in diversi modi, ad esempio "1 gennaio 2009", "1/1/09" e "1 gen 2009". |
NumberFormat | Formatta vari aspetti dei valori numerici. |
PatternFormat | Concatena i valori delle celle sulla stessa riga in una cella specificata, insieme a testo arbitrario. |
ArrowFormat
Aggiunge una Freccia su o una Freccia giù a una cella numerica, a seconda che il valore sia superiore o inferiore a un valore di base specificato. Se è uguale al valore base, non viene mostrata alcuna freccia.
Opzioni
ArrowFormat
supporta le seguenti opzioni, trasmesse al costruttore:
Opzione | Descrizione |
---|---|
base |
Un numero che indica il valore di base, utilizzato per il confronto con il valore della cella. Se il valore della cella è più alto, verrà inclusa una freccia verde su |
Codice campione
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});
BarFormat
Aggiunge una barra colorata a una cella numerica che indica se il valore della cella è superiore o inferiore a un valore di base specificato.
Opzioni
BarFormat
supporta le seguenti opzioni, trasmesse al costruttore:
Opzione | EsempioDescrizione |
---|---|
base |
Un numero che rappresenta il valore di base con cui confrontare il valore della cella. Se il valore della cella è più alto, verrà disegnata a destra della base; se più bassa, a sinistra. Il valore predefinito è 0. |
colorNegative |
Una stringa che indica la sezione del valore negativo delle barre. I valori possibili sono "red", "green" e "blue"; il valore predefinito è "red". |
colorPositive |
Una stringa che indica il colore della sezione del valore positivo delle barre. I valori possibili sono "red", "green" e "blue". Il valore predefinito è "blu". |
drawZeroLine |
Un valore booleano che indica se tracciare una linea di base scura da 1 pixel in presenza di valori negativi. La linea scura serve a migliorare la scansione visiva delle barre. Il valore predefinito è "false". |
max |
Il valore numerico massimo per l'intervallo di barre. Il valore predefinito è il valore più alto della tabella. |
min |
Il valore numerico minimo per l'intervallo di barre. Il valore predefinito è il valore più basso della tabella. |
showValue |
Se il valore è true, mostra valori e barre; se è falso, mostra solo barre. Il valore predefinito è true. |
width |
Spessore di ogni barra, in pixel. Il valore predefinito è 100. |
Codice campione
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%'});
ColorFormat
Assegna i colori al primo piano o allo sfondo di una cella numerica, a seconda del valore della cella. Questo formattatore è insolito, in quanto non prende le sue opzioni nel costruttore. Devi invece chiamare addRange()
o addGradientRange()
tutte le volte che vuoi per aggiungere intervalli di colori prima di chiamare format()
. I colori possono essere specificati in qualsiasi formato HTML accettabile, ad esempio "nero", "#000000" o "#000".
Metodi
ColorFormat
supporta i seguenti metodi:
Metodo | Descrizione |
---|---|
google.visualization.ColorFormat() |
Costruttore. Non accetta argomenti. |
addRange(from, to, color, bgcolor) |
Specifica il colore di primo piano e/o il colore di sfondo di una cella, a seconda del valore della cella. A ogni cella con un valore nell'intervallo specificato da da a a verranno assegnati i valori color e bgcolor. È importante capire che l'intervallo non è inclusivo, perché la creazione di un intervallo compreso tra 1 e 1000 e un secondo compreso tra 1000 e 2000 non copre il valore di 1000.
|
addGradientRange(from, to, color, fromBgColor,
toBgColor)
|
Assegna un colore di sfondo da un intervallo, in base al valore della cella. Il colore viene scalato in modo da corrispondere al valore della cella all'interno di un intervallo che va dal colore del limite inferiore al colore del limite superiore. Tieni presente che questo metodo non può confrontare i valori di stringa, a differenza di
|
format(dataTable, columnIndex) |
Il metodo format() standard per applicare la formattazione alla colonna specificata. |
Codice campione
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%'});
DateFormat
Formatta un valore Date
JavaScript in diversi modi, ad esempio "1 gennaio 2016", "1/1/16" e "1 gen 2016".
Opzioni
DateFormat
supporta le seguenti opzioni, trasmesse al costruttore:
Opzione | Descrizione |
---|---|
formatType |
Un'opzione di formattazione rapida per la data. Sono supportati i seguenti valori di stringa, che riformattano la data 28 febbraio 2016 come mostrato di seguito:
Non puoi specificare sia |
pattern |
Un pattern di formato personalizzato da applicare al valore, simile al formato di data e ora di ICU.
Ad esempio:
Non puoi specificare sia |
timeZone |
Il fuso orario in cui visualizzare il valore della data. Questo è un valore numerico che indica GMT + questo numero di fusi orari (può essere negativo). Per impostazione predefinita, gli oggetti Date vengono creati con il fuso orario presunto del computer su cui vengono creati; questa opzione viene utilizzata per visualizzare il valore in un fuso orario diverso. Ad esempio, se hai creato un oggetto Date delle 17:00 su un computer che si trova a Greenwich, in Inghilterra, e hai specificato il fuso orario -5 (options['timeZone'] = -5 o fuso orario del Pacifico orientale negli Stati Uniti), il valore visualizzato sarà 12 mezzogiorno.
|
Metodi
DateFormat
supporta i seguenti metodi:
Metodo | Descrizione |
---|---|
google.visualization.DateFormat(options) |
Costruttore. Per saperne di più, consulta la sezione delle opzioni in alto. |
format(dataTable, columnIndex) |
Il metodo format() standard per applicare la formattazione alla colonna specificata. |
formatValue(value) |
Restituisce il valore formattato di un determinato valore.
Questo metodo non richiede un |
Codice campione
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%'}); }
Scopri di più sui pattern di date
Di seguito sono riportati alcuni dettagli aggiuntivi sui pattern supportati:
I pattern sono simili al formato di data e ora di ICU, ma quelli che seguono non sono ancora supportati: A e D F g Y u w W. Per evitare conflitti con pattern, il testo letterale che vuoi visualizzare nell'output deve essere racchiuso tra virgolette singole, ad eccezione delle virgolette singole, che devono essere raddoppiate: ad esempio,
"K 'o''clock.'"
.
Sequenza | Descrizione | Output di esempio |
---|---|---|
GG | Indicatore dell'era. | "ANNUNCIO" |
yy o yyyy | anno. | 1996 |
L |
Mese dell'anno. Per gennaio:
|
"Luglio" "07" |
d | Giorno del mese. I valori "d" aggiuntivi aggiungeranno zeri iniziali. | 10 |
h | Ora nella scala di 12 ore. I valori "h" aggiuntivi aggiungeranno zeri iniziali. | 12 |
V | Ora nella scala di 24 ore. Ai valori Hk extra verranno aggiunti zeri iniziali. | 0 |
M | Minuto in un'ora. I valori "M" aggiuntivi aggiungeranno zeri iniziali. | 30 |
s | Secondo nel minuto. I valori di "" aggiuntivi" aggiungeranno zeri iniziali. | 55 |
S | Frazione di secondo. I valori "S" aggiuntivi verranno riempiti a destra con zeri. | 978 |
E |
Giorno della settimana. Output seguenti per "Martedì":
|
"Mar" "Martedì" |
aa | AM/PM | "PM" |
k | Ora del giorno (1~24). I valori "k" aggiuntivi aggiungeranno zeri iniziali. | 24 |
K | Ora in AM/PM (0~11). I valori "k" aggiuntivi aggiungeranno zeri iniziali. | 0 |
z | Fuso orario. Per il fuso orario 5, produce "UTC+5" |
"UTC+5" |
Z |
Fuso orario nel formato RFC 822. Per il fuso orario -5: Z, ZZ, ZZZ prodotti -0500 ZZZZ e altri prodotti "GMT -05:00" |
"-0800" "GMT -05:00" |
v | Fuso orario (generico). |
"Etc/GMT-5" |
' | escape per il testo | 'Date=" |
" | virgoletta singola | ''yy |
NumberFormat
Descrive come formattare le colonne numeriche. Le opzioni di formattazione includono la specifica di un prefisso (ad esempio il simbolo del dollaro) o della punteggiatura da utilizzare come indicatore delle migliaia.
Opzioni
NumberFormat
supporta le seguenti opzioni, trasmesse al costruttore:
Opzione | Descrizione |
---|---|
decimalSymbol |
Un carattere da utilizzare come indicatore decimale. L'impostazione predefinita è un punto (.). |
fractionDigits |
Un numero che specifica quante cifre visualizzare dopo il separatore decimale. Il valore predefinito è 2. Se specifichi più cifre di quelle contenute nel numero, per i valori più piccoli verranno visualizzati zeri. I valori troncati verranno arrotondati (5 arrotondati per eccesso). |
groupingSymbol |
Un carattere da utilizzare per raggruppare le cifre a sinistra del decimale in serie di tre. Il valore predefinito è una virgola (,). |
negativeColor |
Il colore del testo per i valori negativi. Nessun valore predefinito. I valori possono essere qualsiasi valore di colore HTML accettabile, ad esempio "red" o "#FF0000". |
negativeParens |
Un valore booleano, dove true indica che i valori negativi devono essere racchiusi tra parentesi. Il valore predefinito è true. |
pattern |
Una stringa di formato. Se fornite, tutte le altre opzioni vengono ignorate, ad eccezione di
La stringa di formato è un sottoinsieme del
set di pattern di ICU
.
Ad esempio, |
prefix |
Un prefisso di stringa per il valore, ad esempio "$". |
suffix |
Un suffisso della stringa per il valore, ad esempio "%". |
Metodi
NumberFormat
supporta i seguenti metodi:
Metodo | Descrizione |
---|---|
google.visualization.NumberFormat(options) |
Costruttore. Per saperne di più, consulta la sezione delle opzioni in alto. |
format(dataTable, columnIndex) |
Il metodo format() standard per applicare la formattazione alla colonna specificata. |
formatValue(value) |
Restituisce il valore formattato di un determinato valore. Questo metodo non richiede un valore |
Codice campione
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%'});
PatternFormat
Consente di unire i valori delle colonne designate in un'unica colonna, insieme a testo arbitrario. Quindi, ad esempio, se avessi una colonna per il nome e una per il cognome, potresti completare una terza colonna con {last name}, {first name}. Questo formattatore non segue le convenzioni per il costruttore e il metodo format()
. Per istruzioni, consulta la sezione Metodi di seguito.
Metodi
PatternFormat
supporta i seguenti metodi:
Metodo | Descrizione |
---|---|
google.visualization.PatternFormat(pattern) |
Costruttore. Non accetta un oggetto options. Richiede invece un parametro pattern di stringa. Questa è una stringa che descrive quali valori di colonna inserire nella colonna di destinazione, insieme a qualsiasi testo arbitrario. Incorpora segnaposto nella stringa per indicare un valore di un'altra colonna da incorporare. I segnaposto sono
Codice campioneL'esempio seguente mostra un costruttore per un pattern
che crea un elemento anchor, con il primo e il secondo elemento presi dal
metodo var formatter = new google.visualization.PatternFormat( '<a href="mailto:{1}">{0}</a>'); |
format(dataTable, srcColumnIndices,
opt_dstColumnIndex)
|
La chiamata alla formattazione standard, con alcuni parametri aggiuntivi:
Consulta gli esempi di formattazione dopo la tabella. |
Ecco alcuni esempi di input e output per una tabella a quattro colonne.
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
Codice campione
L'esempio seguente mostra come combinare i dati di due colonne per creare un indirizzo email. Utilizza un oggetto DataView per nascondere le colonne di origine originali:
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%'});
GadgetHelper
Una classe helper per semplificare la scrittura di Gadget che utilizzano l'API di visualizzazione di Google.
Costruttore
google.visualization.GadgetHelper()
Metodi
Metodo | Valore restituito | Descrizione |
---|---|---|
createQueryFromPrefs(prefs) |
google.visualization.Query |
Statica. Crea una nuova istanza di google.visualization.Query e impostane le proprietà in base ai valori delle preferenze per i gadget. Il tipo di parametro
prefs è _IG_Prefs
|
validateResponse(response) |
Booleano |
Statica. Il parametro response è di tipo
google.visualization.QueryResponse. Restituisce true se
la risposta contiene dati. Restituisce false se l'esecuzione della query non è riuscita e la risposta non contiene dati. Se si è verificato un errore, questo metodo mostra un messaggio di errore.
|
Classi delle query
I seguenti oggetti sono disponibili per inviare query sui dati a un'origine dati esterna, come Fogli Google.
- Query: esegue il wrapping della richiesta di dati in uscita.
- QueryResponse: gestisce la risposta dall'origine dati.
Query
Rappresenta una query inviata a un'origine dati.
Costruttore
google.visualization.Query(dataSourceUrl, opt_options)
Parametri
- dataSourceUrl
- URL [obbligatorio, stringa] a cui inviare la query. Consulta la documentazione relativa a grafici e fogli di lavoro per Fogli di lavoro Google.
- opt_options
-
[Facoltativo, oggetto] Una mappa delle opzioni per la richiesta. Nota : se accedi a un'
origine dati limitata
, non devi utilizzare questo parametro. Di seguito sono riportate le proprietà supportate:
-
sendMethod - [Facoltativo, stringa] Specifica il metodo da utilizzare per inviare la query. Scegli uno dei seguenti valori di stringa:
- 'xhr' - Invia la query utilizzando XmlHttpRequest.
- 'scriptInjection' - Invia la query utilizzando script injection.
-
'makeRequest' - [Disponibile solo per i gadget, che sono
deprecati] Invia la query utilizzando il metodo
makeRequest()
dell'API Gadget. Se specificato, devi specificare anche makeRequestParams. -
'auto' - Utilizza il metodo specificato dal parametro URL
tqrt
dell'URL dell'origine dati.tqrt
può avere i seguenti valori: "xhr", "scriptInjection" o "makeRequest". Setqrt
non è presente o presenta un valore non valido, il valore predefinito è "xhr" per le richieste dello stesso dominio e "scriptInjection" per le richieste interdominio.
-
makeRequestParams - [Object] Una mappa dei parametri per una
query
makeRequest()
. Utilizzato e obbligatorio solo se sendMethod è 'makeRequest'.
-
sendMethod - [Facoltativo, stringa] Specifica il metodo da utilizzare per inviare la query. Scegli uno dei seguenti valori di stringa:
Metodi
Metodo | Valore restituito | Descrizione |
---|---|---|
abort() |
Nessun valore |
Interrompi l'invio della query automatica avviato con setRefreshInterval() .
|
setRefreshInterval(seconds)
|
Nessun valore |
Imposta la query in modo che chiami automaticamente il metodo Se utilizzi questo metodo, devi chiamarlo prima di chiamare il metodo
Annulla questo metodo chiamandolo di nuovo con zero (valore predefinito) o richiamando
|
setTimeout(seconds) |
Nessun valore |
Imposta il numero di secondi di attesa prima che l'origine dati risponda prima di generare un errore di timeout. seconds è un numero maggiore di zero. Il timeout predefinito è 30 secondi. Questo metodo, se utilizzato, deve essere chiamato prima di chiamare il metodo send .
|
setQuery(string) |
Nessun valore |
Imposta la stringa di query. Il valore del parametro string deve essere una query
valida. Questo metodo, se utilizzato, deve essere chiamato prima di chiamare il metodo send .
Scopri di più sul linguaggio di query.
|
send(callback) |
Nessun valore |
Invia la query all'origine dati. callback dovrebbe essere una funzione che verrà chiamata quando l'origine dati risponde. La funzione di callback riceverà un singolo parametro di
tipo google.visualization.QueryResponse.
|
QueryResponse
Rappresenta la risposta dell'esecuzione di una query come ricevuta dall'origine dati. Un'istanza di questa classe viene passata come argomento alla funzione di callback impostata durante la chiamata di Query.send.
Metodi
Metodo | Valore restituito | Descrizione |
---|---|---|
getDataTable() |
DataTable |
Restituisce la tabella di dati restituita dall'origine dati. Restituisce null se l'esecuzione
della query non è riuscita e non sono stati restituiti dati.
|
getDetailedMessage() |
String | Restituisce un messaggio di errore dettagliato per le query non riuscite. Se l'esecuzione della query è riuscita, questo metodo restituisce una stringa vuota. Il messaggio restituito è destinato agli sviluppatori e può contenere informazioni tecniche, ad esempio "La colonna {salary} non esiste". |
getMessage() |
String | Restituisce un breve messaggio di errore per le query non riuscite. Se l'esecuzione della query è riuscita, questo metodo restituisce una stringa vuota. Il messaggio restituito è un breve messaggio destinato agli utenti finali, ad esempio "Query non valida" o "Accesso negato". |
getReasons() |
Array di stringhe |
Restituisce un array di zero di più voci. Ogni voce è una breve stringa con un codice di errore o di avviso generato durante l'esecuzione della query. Codici possibili:
|
hasWarning() |
Booleano | Restituisce true se l'esecuzione della query contiene messaggi di avviso. |
isError() |
Booleano |
Restituisce true se l'esecuzione della query non è riuscita e la risposta non contiene
alcuna tabella di dati. Restituisce <false> se l'esecuzione della query è riuscita e la risposta contiene una tabella di dati.
|
Visualizzazione degli errori
L'API fornisce diverse funzioni per aiutarti a mostrare messaggi di errore personalizzati agli utenti. Per
utilizzare queste funzioni, fornisci nella pagina un elemento container (in genere un
<div>
), in cui l'API estrarrà un messaggio di errore formattato. Questo contenitore può essere l'elemento del contenitore di visualizzazione o un contenitore solo per gli errori. Se specifichi
l'elemento contenente la visualizzazione, il messaggio di errore verrà mostrato sopra la visualizzazione.
Quindi chiama la funzione appropriata tra quelle riportate di seguito per mostrare o rimuovere il messaggio di errore.
Tutte le funzioni sono funzioni statiche nello spazio dei nomi google.visualization.errors
.
Molte visualizzazioni possono generare un evento di errore. Per saperne di più, consulta l'evento di errore di seguito.
Puoi vedere un esempio di errore personalizzato in Esempio di wrapper query.
Funzione | Valore restituito | Descrizione |
---|---|---|
addError(container, message, opt_detailedMessage,
opt_options)
|
Valore dell'ID stringa che identifica l'oggetto di errore creato. Si tratta di un valore univoco nella pagina e può essere utilizzato per rimuovere l'errore o trovare l'elemento che la contiene. |
Aggiunge un blocco di visualizzazione degli errori all'elemento della pagina specificato, con il testo e la formattazione specificati.
|
addErrorFromQueryResponse(container, response) |
Valore dell'ID stringa che identifica l'oggetto di errore creato oppure nullo se la risposta non indicava un errore. Si tratta di un valore univoco nella pagina che può essere utilizzato per rimuovere l'errore o trovare l'elemento che la contiene. |
Passa una risposta alla query e un contenitore di messaggi di errore a questo metodo: se la risposta alla query indica un errore di query, viene visualizzato un messaggio di errore nell'elemento della pagina specificato. Se la risposta alla query è nulla, il metodo genera un errore JavaScript. Per visualizzare un errore, passa la
QueryResponse ricevuta nel gestore di query a questo messaggio. Verrà inoltre impostato lo stile di visualizzazione appropriato al tipo (errore o avviso, simile a
|
removeError(id) |
Booleano: true se l'errore è stato rimosso; false negli altri casi. |
Rimuove l'errore specificato dall'ID dalla pagina.
|
removeAll(container) |
Nessun valore |
Rimuove tutti i blocchi di errori da un container specificato. Se il container specificato non esiste, verrà visualizzato un errore.
|
getContainer(errorId) |
Handle a un elemento DOM che contiene l'errore specificato o nullo se non è stato possibile trovarlo. |
Recupera un handle dell'elemento container che contiene l'errore specificato da errorID.
|
Eventi
La maggior parte delle visualizzazioni attiva gli eventi per indicare che si è verificato qualcosa. In qualità di utente del grafico, spesso vorrai ascoltare questi eventi. Se codifichi la tua visualizzazione, ti consigliamo anche di attivare questi eventi autonomamente.
I seguenti metodi consentono agli sviluppatori di ascoltare gli eventi, rimuovere i gestori di eventi esistenti o attivare eventi dall'interno di una visualizzazione.
- google.visualization.events.addListener() e google.visualization.events.addOneTimeListener() restano in ascolto degli eventi.
- google.visualization.events.removeListener() rimuove un listener esistente
- google.visualization.events.removeAllListeners() rimuove tutti i listener di un grafico specifico
- google.visualization.events.trigger() attiva un evento.
addListener()
Chiama questo metodo per registrarti e ricevere eventi attivati da una visualizzazione ospitata sulla tua pagina. Devi documentare quali argomenti dell'evento, se presenti, verranno passati alla funzione di gestione.
google.visualization.events.addListener(source_visualization, event_name, handling_function)
- source_visualization
- Un handle all'istanza di visualizzazione di origine.
- event_name
- Il nome della stringa dell'evento da ascoltare. Una visualizzazione deve documentare gli eventi che genera.
- handling_function
- Il nome della funzione JavaScript locale da chiamare quando source_visualization attiva l'evento event_name. Alla funzione di gestione verranno passati tutti gli argomenti evento come parametri.
Restituisce
Un gestore listener per il nuovo listener. Il gestore può essere utilizzato per rimuovere in seguito questo listener, se necessario, chiamando google.visualization.events.removeListener().
Esempio
Ecco un esempio di registrazione per ricevere l'evento di selezione
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()
È identico a addListener()
, ma è destinato agli eventi che devono essere
ascoltati una sola volta. I lanci successivi dell'evento non richiamano la funzione di gestione.
Ecco un esempio dei casi in cui è utile: ogni estrazione genera un evento ready
. Se
vuoi che solo il primo ready
esegua il codice, ti consigliamo di
addOneTimeListener
anziché addListener
.
removeListener()
Chiama questo metodo per annullare la registrazione di un listener di eventi esistente.
google.visualization.events.removeListener(listener_handler)
- listener_handler
- Il gestore listener da rimuovere, come restituito da google.visualization.events.addListener().
removeAllListeners()
Chiama questo metodo per annullare la registrazione di tutti i listener di eventi di una specifica istanza di visualizzazione.
google.visualization.events.removeAllListeners(source_visualization)
- source_visualization
- Un handle all'istanza di visualizzazione di origine da cui devono essere rimossi tutti i listener di eventi.
trigger()
Chiamata dagli implementatori della visualizzazione. Chiama questo metodo dalla tua visualizzazione per attivare un evento con un nome e un insieme di valori arbitrari.
google.visualization.events.trigger(source_visualization, event_name, event_args)
- source_visualization
-
Un handle all'istanza di visualizzazione di origine. Se chiami questa funzione da un metodo definito dalla visualizzazione di invio, puoi semplicemente trasmettere la parola chiave
this
. - event_name
- Un nome di stringa per chiamare l'evento. Puoi scegliere qualsiasi valore di stringa che desideri.
- event_args
- [Facoltativo] Una mappa di coppie nome/valore da passare al metodo di ricezione. Ad esempio: {message: "Ciao!", score: 10, name: "Fred"}. Puoi passare un valore nullo se non sono necessari eventi. Il destinatario deve essere pronto ad accettare un valore nullo per questo parametro.
Esempio
Di seguito è riportato un esempio di visualizzazione che genera un metodo denominato "select" quando viene chiamato il suo metodo Stackdriver. Non restituisce alcun valore.
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); }
Metodi e proprietà di visualizzazione standard
Ogni visualizzazione deve esporre il seguente insieme di metodi e proprietà obbligatori e facoltativi. Tuttavia, tieni presente che non è previsto alcun controllo di tipo per applicare questi standard, quindi ti consigliamo di leggere la documentazione per ogni visualizzazione.
- Costruttore
- disegno()
- getAction() [facoltativo]
- getSelection() [facoltativo]
- removeAction() [facoltativo]
- setAction() [facoltativo]
- setSelection() [facoltativo]
Nota : questi metodi si trovano nello spazio dei nomi della visualizzazione, non nello spazio dei nomi google.visualization.
Costruttore
Il costruttore deve avere il nome della classe di visualizzazione e restituire un'istanza di quella classe.
visualization_class_name(dom_element)
- dom_element
- Un puntatore a un elemento DOM in cui deve essere incorporata la visualizzazione.
Esempio
var org = new google.visualization.OrgChart(document.getElementById('org_div'));
draw()
Traccia la visualizzazione sulla pagina. Dietro le quinte, può essere il recupero di un'immagine da un server o la creazione dell'immagine sulla pagina utilizzando il codice di visualizzazione collegato. Devi chiamare questo metodo ogni volta che i dati o le opzioni cambiano. L'oggetto deve essere disegnato all'interno dell'elemento DOM passato nel costruttore.
draw(data[, options])
- dati
-
Un elemento
DataTable
oDataView
che contiene i dati da utilizzare per disegnare il grafico. Non esiste un metodo standard per estrarre un valoreDataTable
da un grafico. - opzioni
-
[Facoltativo] Una mappa di coppie nome/valore di opzioni personalizzate. Alcuni esempi sono altezza e larghezza, colori di sfondo e didascalie. La documentazione relativa alla visualizzazione deve elencare le opzioni disponibili e deve supportare quelle predefinite se non specifichi questo parametro.
Puoi utilizzare la sintassi letterale dell'oggetto JavaScript per inserire una mappa delle opzioni: ad es.
{x:100, y:200, title:'An Example'}
Esempio
chart.draw(myData, {width: 400, height: 240, is3D: true, title: 'My Daily Activities'});
getAction()
È facoltativamente esposto dalle visualizzazioni che hanno descrizioni comando e consentono le azioni delle descrizioni comando.
Restituisce l'oggetto azione descrizione comando con l'oggetto actionID
richiesto.
Esempio:
// Returns the action object with the ID 'alertAction'. chart.getAction('alertAction');
getSelection()
Facoltativamente, viene mostrata dalle visualizzazioni che vogliono consentirti di accedere ai dati attualmente selezionati nel grafico.
selection_array getSelection()
Restituisce
selection_array Un array di oggetti selezionati, ognuno dei quali descrive un elemento di dati nella tabella sottostante, utilizzato per creare la visualizzazione (un DataView
o un DataTable
). Ogni oggetto ha le proprietà row
e/o column
,
con l'indice della riga e/o della colonna dell'elemento selezionato nella
DataTable
sottostante. Se la proprietà row
è null, la selezione è una colonna;
se la proprietà column
è nulla, la selezione è una riga; se entrambe sono diverse,
si tratta di un elemento di dati specifico. Puoi chiamare il metodo DataTable.getValue()
per ottenere il valore dell'elemento selezionato. L'array recuperato può essere passato a
setSelection()
.
Esempio
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()
È facoltativamente esposto dalle visualizzazioni che hanno descrizioni comando e consentono le azioni delle descrizioni comando.
Rimuove l'oggetto azione descrizione comando con l'oggetto actionID
richiesto dal grafico.
Esempio:
// Removes an action from chart with the ID of 'alertAction'. chart.removeAction('alertAction');
setAction()
È facoltativamente esposto dalle visualizzazioni che hanno descrizioni comando e consentono le azioni delle descrizioni comando. Funziona solo per i grafici principali (a barre, a colonne, a linee, ad area, a dispersione, combinato, a bolle, a torta, ad anello, a candele, a istogramma, con area con rientri).
Imposta un'azione della descrizione comando da eseguire quando l'utente fa clic sul testo dell'azione.
setAction(action object)
Il metodo setAction
prende un oggetto come parametro di azione. Questo oggetto deve specificare tre proprietà: id
: l'ID dell'azione da impostare, text
, il testo da visualizzare nella descrizione comando dell'azione, e action
, la funzione da eseguire quando un utente fa clic sul testo dell'azione.
Qualsiasi azione della descrizione comando deve essere impostata prima di chiamare il metodo draw()
del grafico.
Esempio:
// 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'); } });
Il metodo setAction
può anche definire due proprietà aggiuntive: visible
e enabled
. Queste proprietà devono essere funzioni che restituiscono valori boolean
che indicano se l'azione della descrizione comando sarà visibile e/o abilitata.
Esempio:
// 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()
Facoltativamente, seleziona una voce di dati nella visualizzazione, ad esempio un punto in un grafico ad area o una barra in un grafico a barre. Quando questo metodo viene chiamato, la visualizzazione deve indicare visivamente la nuova selezione. L'implementazione di setSelection()
non deve attivare un evento "select". Le visualizzazioni potrebbero ignorare parte della selezione. Ad esempio, una tabella che può mostrare solo righe selezionate potrebbe ignorare gli elementi di cella o colonna nell'implementazione di setSelection()
oppure può selezionare l'intera riga.
Ogni volta che questo metodo viene chiamato, tutti gli elementi selezionati vengono deselezionati e il nuovo elenco di selezione inviato deve essere applicato. Non esiste un modo esplicito per deselezionare singoli elementi. Per deselezionare singoli elementi, chiama setSelection()
con gli elementi per rimanere selezionati; per deselezionare tutti gli elementi, chiama setSelection()
, setSelection(null)
o setSelection([])
.
setSelection(selection_array)
- selection_array
-
Un array di oggetti, ciascuno con una proprietà numerica di riga e/o colonna.
row
ecolumn
sono il numero di riga o colonna in base zero di un elemento nella tabella di dati da selezionare. Per selezionare un'intera colonna, impostarow
su null; per selezionare un'intera riga, impostacolumn
su null. Esempio:setSelection([{row:0,column:1},{row:1, column:null}])
seleziona la cella in corrispondenza di (0,1) e l'intera riga 1.
Metodi statici assortiti
Questa sezione contiene vari metodi utili esposti nello spazio dei nomi google.visualization
.
arrayToDataTable()
Questo metodo prende una matrice bidimensionale e la converte in una tabella di dati.
I tipi di dati delle colonne vengono determinati automaticamente in base ai dati forniti. I tipi di dati delle colonne possono essere specificati anche utilizzando la notazione letterale oggetto nella prima riga (la riga di intestazione della colonna) dell'array (ad es. {label: 'Start Date', type: 'date'}
).
È possibile utilizzare anche ruoli dati facoltativi, ma devono
essere definiti esplicitamente utilizzando la notazione letterale oggetto. Per qualsiasi cella puoi anche utilizzare la notazione letterale oggetto, in modo da definire oggetti cella.
Sintassi
google.visualization.arrayToDataTable(twoDArray, opt_firstRowIsData)
- twoDArray
- Un array bidimensionale, in cui ogni riga rappresenta una riga nella tabella di dati. Se opt_firstRowIsData è false (valore predefinito), la prima riga verrà interpretata come etichette di intestazione. I tipi di dati di ogni colonna vengono interpretati automaticamente a partire dai dati forniti. Se una cella non ha valori, specifica un valore nullo o vuoto a seconda dei casi.
- opt_firstRowIsData
- Indica se la prima riga definisce o meno una riga di intestazione. Se true, si presume che tutte le righe siano dati. Se il valore è false, si presume che la prima riga sia una riga di intestazione e i valori vengono assegnati come etichette di colonna. Il valore predefinito è false.
Restituisce
Un nuovo DataTable
.
Esempi
Il codice seguente illustra tre modi per creare lo stesso oggetto 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()
Questo metodo crea un grafico in una singola chiamata. Il vantaggio di utilizzare questo metodo è che richiede leggermente meno codice e consente di serializzare e salvare le visualizzazioni come stringhe di testo da riutilizzare. Questo metodo non restituisce un handle al grafico creato, quindi non puoi assegnare listener del metodo per rilevare gli eventi del grafico.
Sintassi
google.visualization.drawChart(chart_JSON_or_object)
- chart_JSON_or_object
- Una stringa letterale JSON o un oggetto JavaScript, con le seguenti proprietà (sensibili alle maiuscole):
Proprietà | Tipo | Obbligatorio | Predefinita | Descrizione |
---|---|---|---|---|
chartType | String | Obbligatorio | Nessuno |
Il nome della classe della visualizzazione. Il nome del pacchetto google.visualization può essere omesso per i grafici Google. Se la libreria di visualizzazioni appropriata non è già stata caricata, questo metodo caricherà automaticamente la libreria se si tratta di una visualizzazione Google; devi caricare esplicitamente le visualizzazioni di terze parti. Esempi: Table ,
PieChart , example.com.CrazyChart .
|
containerId | String | Obbligatorio | Nessuno | L'ID dell'elemento DOM sulla pagina che ospita la visualizzazione. |
opzioni del modello. | Oggetto | Facoltativo | Nessuno |
Un oggetto che descrive le opzioni per la visualizzazione. Puoi utilizzare la notazione letterale JavaScript oppure fornire un handle all'oggetto. Esempio:
"options": {"width": 400, "height": 240,
"is3D": true, "title": "Company Performance"}
|
dataTable | Oggetto | Facoltativo | Nessun valore |
Un elemento DataTable utilizzato per popolare la visualizzazione. Può essere una rappresentazione stringa JSON letterale di una tabella di dati, come descritto sopra, un handle per un oggetto google.visualization.DataTable compilato o un array bidimensionale come quello accettato da
arrayToDataTable(opt_firstRowIsData=false)
.
Devi specificare questa proprietà o la proprietà dataSourceUrl .
|
dataSourceUrl | String | Facoltativo | Nessun valore |
Una query sull'origine dati per completare i dati del grafico, ad esempio un
foglio di lavoro Google. Devi specificare questa proprietà o la proprietà dataTable .
|
query | String | Facoltativo | Nessun valore |
Se specifichi dataSourceUrl , puoi facoltativamente specificare una stringa di query di tipo SQL utilizzando il Linguaggio di query di visualizzazione per filtrare o manipolare i dati.
|
refreshInterval | Numero | Facoltativo | Nessun valore |
La frequenza, in secondi, che la visualizzazione deve aggiornare l'origine della query. Utilizza questo valore solo quando
specifichi dataSourceUrl .
|
vista | Oggetto OR array | Facoltativo | Nessun valore |
Imposta un oggetto inizializzatore DataView , che funge da filtro sui dati sottostanti, come definito dal parametro dataTable o dataSourceUrl .
Puoi passare in una stringa o in un oggetto inizializzatore DataView , come quello restituito da dataview.toJSON() .
Esempio: "view": {"columns": [1, 2]} puoi anche passare un array di oggetti inizializzatori DataView , nel qual caso il primo DataView dell'array viene applicato ai dati sottostanti per creare una nuova tabella di dati, mentre il secondo DataView viene applicato alla tabella di dati risultante dall'applicazione del primo DataView e così via.
|
Esempi
Crea un grafico a tabella basato su un'origine dati del foglio di lavoro e include la query SELECT A,D WHERE 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>
L'esempio successivo crea la stessa tabella, ma crea un elemento DataTable
localmente:
<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>
Questo esempio passa in una rappresentazione stringa JSON del grafico, che potresti aver caricato da un file:
<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()
È il costruttore dell'elemento della barra degli strumenti che può essere collegato a molte visualizzazioni. Questa barra degli strumenti consente all'utente di esportare i dati di visualizzazione in diversi formati o di fornire una versione incorporabile della visualizzazione da utilizzare in luoghi diversi. Consulta la pagina della barra degli strumenti per ulteriori informazioni e un esempio di codice.