Visão geral
Os painéis são uma maneira simples de organizar e gerenciar vários gráficos que compartilham os mesmos dados. Ao usar as APIs descritas nesta página, você fica livre do fardo de conectar e coordenar todos os gráficos que fazem parte de um painel.
Os painéis são definidos usando classes google.visualization.Dashboard
.
As instâncias de Dashboard
recebem um DataTable
contendo os dados a serem visualizados e que, portanto, devem desenhar e distribuir os dados para todos os gráficos que fazem parte do painel.
Os controles são widgets da interface do usuário (como seletores de categoria, controles deslizantes de intervalo, preenchimento automático etc.) com os quais você interage para orientar os dados gerenciados por um painel e os gráficos que fazem parte dele.
Os controles são definidos usando classes google.visualization.ControlWrapper
.
É possível adicionar instâncias de ControlWrapper
a um painel, onde elas se comportam como canos e válvulas em um sistema de encanamento. Eles coletam a entrada do usuário e usam as informações para decidir quais
dados o painel está gerenciando devem ser disponibilizados para os gráficos que fazem parte dele.
Confira o exemplo a seguir, em que um seletor de categoria e um controle deslizante de intervalo são usados para direcionar os dados visualizados por um gráfico de pizza.
Observação:o painel é interativo. Tente operar os controles e ver a mudança no gráfico em tempo real.
Como usar controles e painéis
Estas são as principais etapas para criar um painel e incorporá-lo à sua página. Você vai encontrar um snippet de código demonstrando todas as etapas abaixo, seguido de informações detalhadas sobre cada uma delas.
- Crie um esqueleto de HTML para seu painel. Sua página deve ter quantos elementos HTML forem necessários para conter todos os membros de um dashboard. Isso inclui o painel em si e todos os controles e gráficos que fazem parte dele. Normalmente, você usará um <div> para cada um.
-
Carregue as bibliotecas. Um painel requer que apenas duas bibliotecas sejam incluídas ou carregadas na página: a API AJAX do Google e o pacote
controls
da visualização do Google. - Prepare os dados. Você precisará preparar os dados para visualização. Isso significa especificar os dados por conta própria no código ou consultar um site remoto em busca de dados.
- Criar uma instância de painel. Instancie seu painel chamando o construtor e passando uma referência ao elemento <div> que o conterá.
-
Crie quantas instâncias de controles e gráficos precisar.
Crie instâncias de
google.visualization.ChartWrapper
egoogle.visualization.ControlWrapper
para descrever cada gráfico e controle que o painel gerencia. -
Estabelecer dependências. Chame
bind()
no painel e transmita as instâncias de controle e gráfico para informar ao painel o que gerenciar. Quando um controle e um gráfico são vinculados, o painel atualiza o gráfico para corresponder às restrições que o controle impõe sobre os dados. -
Desenhar seu painel. Chame
draw()
no seu painel e transmita seus dados para desenhar o painel inteiro na página. - Mudanças programáticas após o desenho. Opcionalmente, após o desenho inicial, você pode controlar programaticamente os controles que fazem parte do painel e fazer com que o painel atualize os gráficos em resposta a isso.
Este é um exemplo simples de página que cria um painel simples com um controle deslizante de intervalo que gera um gráfico de pizza. O painel resultante é mostrado abaixo do snippet.
<html> <head> <!--Load the AJAX API--> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> // Load the Visualization API and the controls package. google.charts.load('current', {'packages':['corechart', 'controls']}); // Set a callback to run when the Google Visualization API is loaded. google.charts.setOnLoadCallback(drawDashboard); // Callback that creates and populates a data table, // instantiates a dashboard, a range slider and a pie chart, // passes in the data and draws it. function drawDashboard() { // Create our data table. var data = google.visualization.arrayToDataTable([ ['Name', 'Donuts eaten'], ['Michael' , 5], ['Elisa', 7], ['Robert', 3], ['John', 2], ['Jessica', 6], ['Aaron', 1], ['Margareth', 8] ]); // Create a dashboard. var dashboard = new google.visualization.Dashboard( document.getElementById('dashboard_div')); // Create a range slider, passing some options var donutRangeSlider = new google.visualization.ControlWrapper({ 'controlType': 'NumberRangeFilter', 'containerId': 'filter_div', 'options': { 'filterColumnLabel': 'Donuts eaten' } }); // Create a pie chart, passing some options var pieChart = new google.visualization.ChartWrapper({ 'chartType': 'PieChart', 'containerId': 'chart_div', 'options': { 'width': 300, 'height': 300, 'pieSliceText': 'value', 'legend': 'right' } }); // Establish dependencies, declaring that 'filter' drives 'pieChart', // so that the pie chart will only display entries that are let through // given the chosen slider range. dashboard.bind(donutRangeSlider, pieChart); // Draw the dashboard. dashboard.draw(data); } </script> </head> <body> <!--Div that will hold the dashboard--> <div id="dashboard_div"> <!--Divs that will hold each control and chart--> <div id="filter_div"></div> <div id="chart_div"></div> </div> </body> </html>
Este é o dashboard criado por esse código.
1. Crie um esqueleto HTML para seu painel
Sua página precisa ter o máximo de elementos HTML (geralmente <div>s) para conter o painel e todos os controles e gráficos dele. Ao instanciar as instâncias de painel, controle e gráfico, é preciso passar uma referência ao elemento. Portanto, atribua um ID a cada elemento HTML.
<!--Div that will hold the dashboard--> <div id="dashboard_div"> <!--Divs that will hold each control and chart--> <div id="filter_div"></div> <div id="chart_div"></div> </div>
Você pode posicionar cada elemento HTML como quiser que o painel seja.
2. Recarregue suas bibliotecas
Um painel requer que apenas duas bibliotecas sejam incluídas ou carregadas na página: a API AJAX do Google e o pacote controls
de visualização do Google. A API (em particular, google.visualization.ChartWrapper
) identifica automaticamente os outros pacotes necessários (por exemplo, gauge
se você estiver usando um gráfico de medidor) e os carrega em tempo real, sem que você precise intervir.
Use google.charts.load()
para buscar a biblioteca de controles.
<!--Load the AJAX API--> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> // Load the Visualization API and the controls package. // Packages for all the other charts you need will be loaded // automatically by the system. google.charts.load('current', {'packages':['corechart', 'controls']}); // Set a callback to run when the Google Visualization API is loaded. google.charts.setOnLoadCallback(drawDashboard); function drawDashboard() { // Everything is loaded. Assemble your dashboard... } </script>
3. Prepare seus dados
Quando a API de visualização for carregada, google.charts.setOnLoadCallback()
chamará a função de gerenciador. Assim, você saberá que todos os métodos e classes auxiliares necessários estarão prontos para você começar a preparar os dados.
Os painéis aceitam dados em uma tabela de dados, da mesma forma que os gráficos.
4. Criar uma instância de painel
Depois de criar os dados, é possível instanciar o objeto do dashboard. Um construtor de painel usa um parâmetro: uma referência ao elemento DOM em que o painel será desenhado.
var dashboard = new google.visualization.Dashboard(document.getElementById('dashboard_div'));
Os painéis são expostos como uma classe JavaScript. Depois de instanciar seu painel, você pode executar algumas etapas opcionais, como adicionar listeners de eventos (por exemplo, para ser notificado quando o painel estiver "pronto"). Os painéis processam eventos da mesma forma que os gráficos. Portanto, consulte Como lidar com eventos de visualização ou Como exibir erros corretamente na seção de gráficos para saber mais.
5. Criar instâncias de controle e gráfico
Defina quantas instâncias forem necessárias para cada controle e gráfico que farão parte do painel.
Use
google.visualization.ChartWrapper
e
google.visualization.ControlWrapper
para definir gráficos e controles, respectivamente.
// Create a range slider, passing some options var donutRangeSlider = new google.visualization.ControlWrapper({ 'controlType': 'NumberRangeFilter', 'containerId': 'filter_div', 'options': { 'filterColumnLabel': 'Donuts eaten' } }); // Create a pie chart, passing some options var pieChart = new google.visualization.ChartWrapper({ 'chartType': 'PieChart', 'containerId': 'chart_div', 'options': { 'width': 300, 'height': 300, 'pieSliceText': 'label' } });
Ao criar instâncias ChartWrapper
e ControlWrapper
, não especifique o parâmetro dataTable
ou dataSourceUrl
. O painel se encarrega de alimentar cada um com os dados apropriados. No entanto, especifique os parâmetros obrigatórios: chartType
e containerId
para gráficos e controlType
e containerId
para controles.
Algumas dicas sobre como configurar controles e gráficos:
-
É necessário atribuir uma
filterColumnIndex
(oufilterColumnLabel
) a todos os controles para especificar em qual coluna dogoogle.visualization.DataTable
o controle opera (no exemplo acima, o controle opera na coluna Donuts consumidos). -
Use a opção de configuração
state
nos controles para inicializá-los com um estado explícito quando forem desenhados pela primeira vez. Por exemplo, use essa configuração para corrigir as posições iniciais das miniaturas de um controle deslizante de intervalo.var donutRangeSlider = new google.visualization.ControlWrapper({ 'controlType': 'NumberRangeFilter', 'containerId': 'filter_div', 'options': { 'filterColumnLabel': 'Donuts eaten', 'minValue': 1, 'maxValue': 10 }, // Explicitly positions the thumbs at position 3 and 8, // out of the possible range of 1 to 10. 'state': {'lowValue': 3, 'highValue': 8} });
-
Todos os gráficos que fazem parte de um painel compartilham o mesmo dataTable subjacente que você preparou na etapa Preparar seus dados. No entanto, os gráficos geralmente exigem uma organização específica de colunas para serem exibidos corretamente: por exemplo, um gráfico de pizza exige uma coluna de string para o rótulo, seguida por uma coluna de números para o valor.
Use a opção
view
ao configurar cada instância deChartWrapper
para declarar quais colunas são relevantes para o gráfico, como no exemplo a seguir.var data = google.visualization.arrayToDataTable([ ['Name', 'Gender', 'Age', 'Donuts eaten'], ['Michael' , 'Male', 12, 5], ['Elisa', 'Female', 20, 7], ['Robert', 'Male', 7, 3], ['John', 'Male', 54, 2], ['Jessica', 'Female', 22, 6], ['Aaron', 'Male', 3, 1], ['Margareth', 'Female', 42, 8] ]); var pieChart = new google.visualization.ChartWrapper({ 'chartType': 'PieChart', 'containerId': 'chart_div', 'options': { 'width': 300, 'height': 300, 'title': 'Donuts eaten per person' }, // The pie chart will use the columns 'Name' and 'Donuts eaten' // out of all the available ones. 'view': {'columns': [0, 3]} }); // The rest of dashboard configuration follows // ...
6. Estabelecer dependências
Depois de instanciar o painel e todos os controles e gráficos que farão parte dele, use o método bind()
para informar o painel sobre as dependências existentes entre controles e gráficos.
Quando um controle e um gráfico são vinculados, o painel atualiza o gráfico para corresponder às restrições que o controle impõe sobre os dados. No painel de exemplo que você está criando, o controle deslizante de intervalo e o gráfico de pizza são vinculados. Portanto, sempre que você interagir com o primeiro, o segundo será atualizado para exibir apenas os dados que correspondem ao intervalo selecionado.
// 'pieChart' will update whenever you interact with 'donutRangeSlider' // to match the selected range. dashboard.bind(donutRangeSlider, pieChart);
É possível vincular controles e gráficos em várias configurações diferentes: um para um, um para muitos, muitos para um e muitos para muitos. Sempre que vários controles são vinculados a um gráfico, o painel atualiza o gráfico para corresponder às restrições combinadas aplicadas por todos os controles vinculados. Ao mesmo tempo, um controle pode gerenciar vários gráficos simultaneamente. Para especificar várias vinculações ao mesmo tempo, transmita matrizes para o método bind()
em vez de instâncias únicas. Também é possível
encadear várias chamadas bind()
. Veja alguns exemplos.
// Many-to-one binding where 'ageSelector' and 'salarySelector' concurrently // participate in selecting which data 'ageVsSalaryScatterPlot' visualizes. dashboard.bind([agePicker, salaryPicker], ageVsSalaryScatterPlot); // One-to-many binding where 'ageSelector' drives two charts. dashboard.bind(agePicker, [ageVsSalaryScatterPlot, ageBarChart]); // bind() chaining where each control drives its own chart. dashboard.bind(agePicker, ageBarChart).bind(salaryRangePicker, salaryPieChart);
Para usos avançados, também é possível vincular controles a outros controles para estabelecer cadeias de dependências .
dashboard.bind(countryPicker, regionPicker).bind(regionPicker, cityPicker);
7. Desenhar seu painel
Chame o método draw()
na instância do painel para renderizar todo o painel.
O método draw()
usa apenas um parâmetro: o DataTable
(ou DataView
) que alimenta o painel.
Chame draw()
sempre que mudar a composição do painel (por exemplo, adicionando novos controles ou gráficos) ou mudar a DataTable
geral que o alimenta.
A instância do painel dispara um evento ready
sempre que draw()
termina de mostrar todos os controles e gráficos que fazem parte dele. Um evento error
será disparado se um dos controles gerenciados ou do gráfico não for desenhado. Consulte Como processar eventos para saber mais.
Observação:detecte o evento ready
antes de tentar alterar a composição do painel ou desenhá-lo novamente.
8. Mudanças programáticas após o desenho
Depois que o painel concluir o draw()
inicial, ele ficará ativo e responderá automaticamente a qualquer ação realizada nele, como mudar o intervalo selecionado de um controle deslizante que faz parte do painel.
Se você precisar alterar programaticamente o estado do painel, poderá fazer isso operando diretamente nas instâncias ControlWrapper
e ChartWrapper
que fazem parte dele.
A regra prática é realizar qualquer alteração necessária diretamente na instância específica de ControlWrapper
(ou ChartWrapper
). Por exemplo, altere uma opção ou estado de controle via setOption()
e setState()
, respectivamente, e chame o método draw()
em seguida. O painel será atualizado para corresponder às alterações solicitadas.
O exemplo a seguir mostra esse caso.
<html> <head> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load('current', {'packages':['corechart', 'controls']}); google.charts.setOnLoadCallback(drawStuff); function drawStuff() { var dashboard = new google.visualization.Dashboard( document.getElementById('programmatic_dashboard_div')); // We omit "var" so that programmaticSlider is visible to changeRange. var programmaticSlider = new google.visualization.ControlWrapper({ 'controlType': 'NumberRangeFilter', 'containerId': 'programmatic_control_div', 'options': { 'filterColumnLabel': 'Donuts eaten', 'ui': {'labelStacking': 'vertical'} } }); var programmaticChart = new google.visualization.ChartWrapper({ 'chartType': 'PieChart', 'containerId': 'programmatic_chart_div', 'options': { 'width': 300, 'height': 300, 'legend': 'none', 'chartArea': {'left': 15, 'top': 15, 'right': 0, 'bottom': 0}, 'pieSliceText': 'value' } }); var data = google.visualization.arrayToDataTable([ ['Name', 'Donuts eaten'], ['Michael' , 5], ['Elisa', 7], ['Robert', 3], ['John', 2], ['Jessica', 6], ['Aaron', 1], ['Margareth', 8] ]); dashboard.bind(programmaticSlider, programmaticChart); dashboard.draw(data); changeRange = function() { programmaticSlider.setState({'lowValue': 2, 'highValue': 5}); programmaticSlider.draw(); }; changeOptions = function() { programmaticChart.setOption('is3D', true); programmaticChart.draw(); }; } </script> </head> <body> <div id="programmatic_dashboard_div" style="border: 1px solid #ccc"> <table class="columns"> <tr> <td> <div id="programmatic_control_div" style="padding-left: 2em; min-width: 250px"></div> <div> <button style="margin: 1em 1em 1em 2em" onclick="changeRange();"> Select range [2, 5] </button><br /> <button style="margin: 1em 1em 1em 2em" onclick="changeOptions();"> Make the pie chart 3D </button> </div> </td> <td> <div id="programmatic_chart_div"></div> </td> </tr> </table> </div> </body> </html>
Referência da API
Nesta seção, listamos os objetos expostos pela API Controls and Dashboards, além dos métodos padrão expostos por todos os controles.
Painel
Representa uma coleção de controles e gráficos colaborativos que compartilham os mesmos dados.
Construtor
Dashboard(containerRef)
- containerRef
- Uma referência a um elemento de contêiner válido na página que vai conter o conteúdo do painel.
Métodos
O Dashboard expõe os seguintes métodos:
Método | Tipo de retorno | Descrição |
---|---|---|
bind(controls, charts) |
google.visualization.Dashboard |
Vincula um ou mais controles a um ou mais participantes do painel (gráficos ou
outros controles), para que todos os dois sejam redesenhados sempre que qualquer um deles colete
uma interação programática ou do usuário que afete os dados gerenciados pelo painel. Retorna a própria instância do painel para encadear várias chamadas
|
draw(dataTable) |
Nenhum | Desenha o painel.
|
getSelection() |
Matriz de objetos |
Retorna uma matriz das entidades visuais selecionadas dos gráficos no painel. O método Observação:os listeners do evento select ainda precisam ser anexados a cada gráfico que você quer detectar. |
Eventos
O objeto do painel de controle gera os seguintes eventos. É necessário chamar Dashboard.draw()
antes que qualquer evento seja gerado.
Nome | Descrição | Propriedades |
---|---|---|
error |
Disparado quando ocorre um erro ao tentar renderizar o painel. Um ou mais controles e gráficos que fazem parte do painel podem ter falhado na renderização. | ID, mensagem |
ready |
O desenho do painel foi concluído, e ele está pronto para aceitar alterações. Todos os controles e gráficos que fazem parte do painel estão prontos para chamada de método externo e interação com o usuário. Se você quiser alterar o painel (ou os dados que ele exibe) depois de desenhá-lo, configure um listener para esse evento antes de chamar o método O evento
|
Nenhum |
ControlWrapper
Um objeto ControlWrapper é um wrapper em torno de uma representação JSON de uma instância de controle configurada. A classe expõe métodos de conveniência para definir um controle de painel, desenhá-lo e alterar programaticamente o estado dele.
Construtor
ControlWrapper(opt_spec)
- opt_spec
- [Opcional]: um objeto JSON que define o controle ou uma versão de string serializada desse objeto. As propriedades compatíveis do objeto JSON são mostradas na tabela a seguir. Se não for especificado, você precisará definir todas as propriedades adequadas usando os métodos set... expostos por ControlWrapper.
Propriedade | Tipo | Obrigatório | Padrão | Descrição |
---|---|---|---|---|
controlType | String | Obrigatório | nenhum |
O nome da classe do controle. O nome do pacote google.visualization pode ser omitido nos controles do Google. Exemplos:CategoryFilter , NumberRangeFilter .
|
containerId | String | Obrigatório | nenhum | O ID do elemento DOM da página que hospedará o controle. |
do modelo. | Objeto | Opcional | nenhum |
Um objeto que descreve as opções do controle. É possível usar a notação literal JavaScript ou fornecer um identificador para o objeto. Exemplo:
"options": {"filterColumnLabel": "Age",
"minValue": 10, "maxValue": 80}
|
state | Objeto | Opcional | nenhum |
Um objeto que descreve o estado do controle. O estado coleta todas as variáveis que o usuário que opera o controle pode afetar. Por exemplo, um estado de controle deslizante de intervalo pode ser descrito considerando as posições que os dedos baixo e alto dele ocupam. Você pode usar a
notação literal JavaScript ou fornecer um handle para o objeto.Exemplo:"state": {"lowValue": 20, "highValue": 50}
|
Métodos
ControlWrapper expõe os seguintes métodos adicionais:
Método | Tipo de retorno | Descrição |
---|---|---|
draw() |
Nenhum |
Desenha o controle. Normalmente, o painel que detém o controle cuida de desenhá-lo.
Chame |
toJSON() |
String | Retorna uma versão em string da representação JSON do controle. |
clone() |
ControlWrapper | Retorna uma cópia detalhada do wrapper de controle. |
getControlType() |
String |
O nome da classe do controle. Se for um controle do Google, o nome não será qualificado com google.visualization . Por exemplo, se fosse um controle CategoryFilter, ele retornaria "CategoryFilter" em vez de "google.visualization.CategoryFilter".
|
getControlName() |
String | Retorna o nome de controle atribuído por setControlName() . |
getControl() |
Referência de objeto de controle |
Retorna uma referência ao controle criado por este ControlWrapper. Isso retornará um valor nulo
até que você chame draw() no objeto ControlWrapper (ou no
painel que o contém) e gere um evento "ready". O objeto retornado expõe apenas um método: resetControl() , que redefine o estado de controle para o que foi inicializado (como redefinir um elemento de formulário HTML).
|
getContainerId() |
String | O ID do elemento de contêiner DOM do controle. |
getOption(key, opt_default_val) |
Qualquer tipo | Retorna o valor da opção de controle especificado
|
getOptions() |
Objeto | Retorna o objeto de opções deste controle. |
getState() |
Objeto | Retorna o estado de controle. |
setControlType(type) |
Nenhum |
Define o tipo de controle. Transmita o nome da classe do controle a ser instanciado. Se for um controle do Google, não o qualifique com google.visualization .
Por exemplo, para um controle deslizante de intervalo sobre uma coluna numérica, transmita "NumberRangeFilter".
|
setControlName(name) |
Nenhum | Define um nome arbitrário para o controle. Isso não é exibido em nenhum lugar no controle, mas serve apenas para sua referência. |
setContainerId(id) |
Nenhum | Define o ID do elemento DOM que o contém para o controle. |
setOption(key, value) |
Nenhum |
Define um único valor de opção de controle, em que key é o nome da opção e value é o valor. Para cancelar a definição de uma opção, transmita o valor nulo. key pode ser um nome qualificado, como 'vAxis.title' .
|
setOptions(options_obj) |
Nenhum | Define um objeto de opções completo para um controle. |
setState(state_obj) |
Nenhum | Define o estado do controle. O estado coleta todas as variáveis que o usuário que opera o controle pode afetar. Por exemplo, um estado de controle deslizante de intervalo pode ser descrito considerando as posições que os dedos inferior e alto dele ocupam. |
Eventos
O objeto ControlWrapper lança os seguintes eventos. Chame ControlWrapper.draw()
(ou desenhe o painel que contém o controle) antes que qualquer evento seja gerado.
Nome | Descrição | Propriedades |
---|---|---|
error |
Disparado quando ocorre um erro ao tentar renderizar o controle. | ID, mensagem |
ready |
O controle está pronto para aceitar a interação do usuário e para chamadas de métodos externos. Se você quiser interagir com o controle e chamar métodos depois de desenhá-lo, configure um listener para esse evento antes de chamar o método draw e chame-o somente depois que o evento for disparado. Como alternativa, você pode detectar um evento ready no painel que contém os métodos de controle e chamada de controle somente depois que o evento foi disparado.
|
Nenhum |
statechange |
Disparado quando o usuário interage com o controle, afetando o estado dele. Por exemplo, um evento statechange será disparado sempre que você mover as miniaturas de um controle deslizante de intervalo. Para recuperar um estado de controle atualizado após o disparo do evento, chame ControlWrapper.getState() .
|
Nenhum |
ChartWrapper
Consulte a documentação de
google.visualization.ChartWrapper
na seção de referência da API das visualizações.
As observações a seguir se aplicam ao uso de um ChartWrapper
como parte de um painel:
-
Não defina os atributos
dataTable
,query
,dataSourceUrl
erefreshInterval
explicitamente. O painel que contém o gráfico é responsável por alimentá-lo com os dados necessários. -
Defina o atributo
view
para declarar quais colunas, dentre todas as presentes nodataTable
fornecidas ao painel, são relevantes para o gráfico, conforme mostrado em Criar instâncias de controle e gráfico.
Galeria de controles
Filtros são elementos gráficos que as pessoas podem usar para selecionar interativamente quais dados são exibidos no seu gráfico. Esta seção descreve os filtros de gráfico do Google: CategoryFilter, ChartRangeFilter, DateRangeFilter, NumberRangeFilter e StringFilter.
É possível usar qualquer um deles como parâmetro para ControlWrapper.setControlType()
.
Observação:ao descrever opções, a notação de ponto é usada para descrever atributos de objetos
aninhados. Por exemplo, uma opção chamada 'ui.label'
precisa ser declarada em um objeto de opções como var options = {"ui": {"label": "someLabelValue"} };
.
CategoryFilter
Um seletor para escolher um ou mais valores entre um conjunto de valores definidos.
Estado
Nome | Tipo | Padrão | Descrição |
---|---|---|---|
selectedValues | matriz de objetos ou tipos primitivos | nenhum |
O conjunto de valores selecionado no momento. Os valores selecionados precisam ser um conjunto dos valores selecionáveis gerais definidos pela opção values (qualquer valor irrelevante será ignorado). Se o CategoryFilter não permitir a múltipla escolha, somente o primeiro valor da matriz será mantido.
|
Opções
Nome | Tipo | Padrão | Descrição |
---|---|---|---|
filterColumnIndex | number | nenhum |
A coluna da tabela de dados na qual o filtro deve operar. É obrigatório fornecer
essa opção ou filterColumnLabel . Se ambos estiverem presentes, esta opção terá precedência.
|
filterColumnLabel | string | nenhum |
O rótulo da coluna em que o filtro deve operar. É obrigatório fornecer
essa opção ou filterColumnIndex . Se ambos estiverem presentes,
filterColumnIndex terá precedência.
|
valores | Matriz | automático |
Lista de valores para escolher. Se uma matriz de objetos for usada, eles precisarão ter uma representação de toString() adequada para exibição ao usuário. Se for nulo ou indefinido, a lista de valores será calculada automaticamente com base nos valores presentes na coluna "DataTable" em que esse controle opera.
|
useFormattedValue | boolean | false | Ao preencher automaticamente a lista de valores selecionáveis na coluna DataTable em que esse filtro opera, seja usando os valores de células reais ou seus valores formatados. |
ui | Objeto | null |
Um objeto com membros para configurar vários aspectos da interface do controle.
Para especificar as propriedades desse objeto, use a notação literal de objeto, como mostrado aqui:
{label: 'Metric', labelSeparator: ':'} |
ui.caption | string | "Escolher um valor..." | A legenda a ser exibida dentro do widget do seletor de valor quando nenhum item é selecionado. |
ui.sortValues | boolean | verdadeiro | Indica se os valores para escolher devem ser classificados. |
ui.selectedValuesLayout | string | 'de lado' | Como mostrar valores selecionados quando a seleção múltipla é permitida. Os valores possíveis são:
|
ui.allowNone | boolean | verdadeiro |
Define se o usuário tem permissão para não escolher nenhum valor. Se for false , o usuário precisará escolher pelo menos um dos valores disponíveis. Durante a inicialização do controle, se a opção for definida como false e nenhum estado selectedValues for fornecido, o primeiro valor disponível será selecionado automaticamente.
|
ui.allowMultiple | boolean | verdadeiro | Indica se vários valores podem ser selecionados, em vez de apenas um. |
ui.allowTyping | boolean | verdadeiro | Se o usuário tem permissão para digitar em um campo de texto para restringir a lista de opções possíveis (por meio de um preenchimento automático) ou não. |
ui.label | string | automático | O rótulo a ser exibido ao lado do seletor de categoria. Se não for especificado, será usado o rótulo da coluna em que o controle opera. |
ui.labelSeparator | string | nenhum | Uma string de separador anexada ao rótulo para separar visualmente o rótulo do seletor de categoria. |
ui.labelStacking | string | "horizontal" |
Indica se o rótulo deve ser exibido acima (empilhamento vertical) ou ao lado (empilhamento horizontal)
do seletor de categoria. Use 'vertical' ou 'horizontal' .
|
ui.cssClass | string | 'google-visualization-controls-categoryfilter' | A classe CSS a ser atribuída ao controle para estilização personalizada. |
ChartRangeFilter
Um controle deslizante com dois ícones sobrepostos em um gráfico para selecionar um intervalo de valores a partir do eixo contínuo (em inglês).
Estado
Nome | Tipo | Padrão | Descrição |
---|---|---|---|
range.start | número, data, data e hora ou timeofday | Valor inicial do intervalo | O início do intervalo selecionado. |
range.end | número, data, data e hora ou timeofday | Valor final do intervalo | O fim do intervalo selecionado (valor inclusivo). |
Opções
Nome | Tipo | Padrão | Descrição |
---|---|---|---|
filterColumnIndex | number | nenhum |
O índice da coluna na tabela de dados em que o filtro opera.
É obrigatório fornecer essa opção ou filterColumnLabel . Se ambos estiverem
presentes, esta opção terá precedência.
Observe que só faz sentido especificar um índice de uma coluna domain que está incorporada no eixo contínuo do gráfico desenhado dentro do controle. |
filterColumnLabel | string | nenhum |
O rótulo da coluna da tabela de dados em que o filtro opera. É obrigatório fornecer
essa opção ou filterColumnIndex . Se ambos estiverem presentes,
filterColumnIndex terá precedência.
Observe que só faz sentido especificar um rótulo de uma coluna domain que está incorporada no eixo contínuo do gráfico desenhado dentro do controle. |
ui | Objeto | null |
Um objeto com membros para configurar vários aspectos da interface do controle.
Para especificar as propriedades desse objeto, use a notação literal de objeto, como mostrado aqui:
{chartType: 'ScatterChart', chartOptions: {pointSize: 10}} |
ui.chartType | string | "ComboChart" |
O tipo do gráfico dentro do controle. Pode ser um destes: "Gráfico de área", "Gráfico de linhas", "Gráfico de combinação" ou "Gráfico de dispersão". |
ui.chartOptions | Objeto |
{ 'enableInteractivity': false, 'chartArea': {'height': '100%'}, 'legend': {'position': 'none'}, 'hAxis': {'textPosition': 'in'}, 'vAxis': { 'textPosition': 'none', 'gridlines': {'color': 'none'} } } |
As opções de configuração do gráfico dentro do controle.
Permite o mesmo nível de configuração de qualquer gráfico no painel e segue o mesmo formato aceito por ChartWrapper.setOptions().
É possível especificar opções adicionais ou substituir as opções padrão. No entanto, observe que os padrões foram cuidadosamente escolhidos para melhorar a aparência. |
ui.chartView | Objeto ou string (objeto serializado) | null |
Especificação da visualização a ser aplicada à tabela de dados usada para desenhar o gráfico dentro do
controle. Permite o mesmo nível de configuração que qualquer gráfico no painel e segue o mesmo formato aceito por ChartWrapper.setView(). Se não for especificado, a própria tabela de dados será usada para desenhar o gráfico.
O eixo horizontal do gráfico desenhado precisa ser contínuo. Portanto, especifique |
ui.minRangeSize | number | Diferença no valor de dados interpretada como 1 pixel |
O tamanho mínimo do intervalo selecionável (range.end - range.start ), especificado em unidades de valor de dados. No eixo numérico, é um número (não necessariamente um número inteiro).
Para um eixo de data, datetime ou timeofday, é um número inteiro que especifica a diferença em milissegundos.
|
ui.snapToData | boolean | false |
Se verdadeira, as miniaturas do intervalo são ajustadas aos pontos de dados mais próximos.
Nesse caso, os endpoints do intervalo retornado por getState() são necessariamente valores na tabela de dados.
|
Eventos
Adições aos eventos ControlWrapper:
Nome | Descrição | Propriedades |
---|---|---|
statechange |
Igual à documentação para cada ControlWrapper, tem apenas uma propriedade booleana extra,
inProgress , que especifica se o estado está sendo modificado
(uma das miniaturas ou o próprio intervalo está sendo arrastado).
|
inProgress |
DateRangeFilter
Um controle deslizante de valor duplo para selecionar períodos de datas.
Mova o controle deslizante para mudar as linhas mostradas na tabela abaixo.
Estado
Nome | Tipo | Padrão | Descrição |
---|---|---|---|
lowValue | number | nenhum | A menor extensão do intervalo selecionado. |
highValue | number | nenhum | A maior extensão do intervalo selecionado. |
lowThumbAtMinimum | boolean | nenhum |
Indica se o círculo inferior do controle deslizante está bloqueado no intervalo mínimo permitido. Se definido,
substitui lowValue .
|
highThumbAtMaximum | boolean | nenhum |
Indica se a extremidade mais alta do controle deslizante está bloqueada no intervalo máximo permitido. Se definido,
substitui highValue .
|
Opções
Nome | Tipo | Padrão | Descrição |
---|---|---|---|
filterColumnIndex | number | nenhum |
A coluna da tabela de dados na qual o filtro deve operar. É obrigatório fornecer
essa opção ou filterColumnLabel . Se ambos estiverem presentes, esta opção terá precedência.
Precisa apontar para uma coluna com o tipo number .
|
filterColumnLabel | string | nenhum |
O rótulo da coluna em que o filtro deve operar. É obrigatório fornecer
essa opção ou filterColumnIndex . Se ambos estiverem presentes,
filterColumnIndex terá precedência. Precisa apontar para uma coluna com tipo
number .
|
minValue | Data | automático | Valor mínimo permitido para a extensão menor do intervalo. Se não definido, o valor será inferido do conteúdo do DataTable gerenciado pelo controle. |
maxValue | Data | automático | Valor máximo permitido para a extensão maior do intervalo. Se não definido, o valor será inferido do conteúdo do DataTable gerenciado pelo controle. |
ui | Objeto | null |
Um objeto com membros para configurar vários aspectos da interface do controle.
Para especificar as propriedades desse objeto, use a notação literal de objeto, como mostrado aqui:
{label: 'Age', labelSeparator: ':'} |
ui.format | Objeto | nenhum | Como representar a data como uma string. Aceita qualquer formato de data válido. |
ui.step | string | dia | A mudança mínima possível ao arrastar as marcações "Gostei" no controle deslizante: pode ser qualquer unidade de tempo até "dia". ("mês" e "ano" ainda não são compatíveis.) |
ui.ticks | number | automático | O número de marcações (posições fixas na barra de intervalo) que os ícones do controle deslizante podem ocupar. |
ui.unitIncrement | string | "1" | O valor a ser incrementado para incrementos de unidades das extensões do intervalo. Um incremento de unidade é equivalente a usar as teclas de seta para mover um indicador de movimento. |
ui.blockIncrement | number | 10 | O valor a ser incrementado para incrementos de blocos das extensões do intervalo. Um incremento de bloco é equivalente a usar as teclas pgUp e pgDown para mover o controle deslizante "Gostei". |
ui.showRangeValues | boolean | verdadeiro | Indica se rótulos ao lado do controle deslizante vão exibir as extensões do intervalo selecionado. |
ui.orientation | string | "horizontal" | A orientação do controle deslizante. 'horizontal' ou 'vertical' . |
ui.label | string | automático | O rótulo que será exibido ao lado do controle deslizante. Se não for especificado, será usado o rótulo da coluna em que o controle opera. |
ui.labelSeparator | string | nenhum | Uma string de separador anexada ao rótulo para separar visualmente o rótulo do controle deslizante. |
ui.labelStacking | string | "horizontal" |
Indica se o rótulo será exibido acima (empilhamento vertical) ou ao lado (empilhamento horizontal)
do controle deslizante. Use 'vertical' ou 'horizontal' .
|
ui.cssClass | string | 'google-visualization-controls-rangefilter' | A classe CSS a ser atribuída ao controle para estilização personalizada. |
NumberRangeFilter
Um controle deslizante de valor duplo para selecionar intervalos de valores numéricos.
Estado
Nome | Tipo | Padrão | Descrição |
---|---|---|---|
lowValue | number | nenhum | A menor extensão do intervalo selecionado. |
highValue | number | nenhum | A maior extensão do intervalo selecionado. |
lowThumbAtMinimum | boolean | nenhum |
Indica se o círculo inferior do controle deslizante está bloqueado no intervalo mínimo permitido. Se definido,
substitui lowValue .
|
highThumbAtMaximum | boolean | nenhum |
Indica se a extremidade mais alta do controle deslizante está bloqueada no intervalo máximo permitido. Se definido,
substitui highValue .
|
Opções
Nome | Tipo | Padrão | Descrição |
---|---|---|---|
filterColumnIndex | number | nenhum |
A coluna da tabela de dados na qual o filtro deve operar. É obrigatório fornecer
essa opção ou filterColumnLabel . Se ambos estiverem presentes, esta opção terá precedência.
Precisa apontar para uma coluna com o tipo number .
|
filterColumnLabel | string | nenhum |
O rótulo da coluna em que o filtro deve operar. É obrigatório fornecer
essa opção ou filterColumnIndex . Se ambos estiverem presentes,
filterColumnIndex terá precedência. Precisa apontar para uma coluna com tipo
number .
|
minValue | number | automático | Valor mínimo permitido para a extensão menor do intervalo. Se não definido, o valor será inferido do conteúdo do DataTable gerenciado pelo controle. |
maxValue | number | automático | Valor máximo permitido para a extensão maior do intervalo. Se não definido, o valor será inferido do conteúdo do DataTable gerenciado pelo controle. |
ui | Objeto | null |
Um objeto com membros para configurar vários aspectos da interface do controle.
Para especificar as propriedades desse objeto, use a notação literal de objeto, como mostrado aqui:
{label: 'Age', labelSeparator: ':'} |
ui.format | Objeto | nenhum | Como representar o número como uma string. Aceita qualquer formato de número válido. |
ui.step | number | 1 ou calculado com base em ticks , se definido |
A mudança mínima possível ao arrastar os dedos do controle deslizante. |
ui.ticks | number | automático | O número de marcações (posições fixas na barra de intervalo) que os ícones do controle deslizante podem ocupar. |
ui.unitIncrement | number | 1 | O valor a ser incrementado para incrementos de unidades das extensões do intervalo. Um incremento de unidade é equivalente a usar as teclas de seta para mover um indicador de movimento. |
ui.blockIncrement | number | 10 | O valor a ser incrementado para incrementos de blocos das extensões do intervalo. Um incremento de bloco é equivalente a usar as teclas pgUp e pgDown para mover o controle deslizante "Gostei". |
ui.showRangeValues | boolean | verdadeiro | Indica se rótulos ao lado do controle deslizante vão exibir as extensões do intervalo selecionado. |
ui.orientation | string | "horizontal" | A orientação do controle deslizante. 'horizontal' ou 'vertical' . |
ui.label | string | automático | O rótulo que será exibido ao lado do controle deslizante. Se não for especificado, será usado o rótulo da coluna em que o controle opera. |
ui.labelSeparator | string | nenhum | Uma string de separador anexada ao rótulo para separar visualmente o rótulo do controle deslizante. |
ui.labelStacking | string | "horizontal" |
Indica se o rótulo será exibido acima (empilhamento vertical) ou ao lado (empilhamento horizontal)
do controle deslizante. Use 'vertical' ou 'horizontal' .
|
ui.cssClass | string | 'google-visualization-controls-rangefilter' | A classe CSS a ser atribuída ao controle para estilização personalizada. |
StringFilter
Um campo de entrada de texto simples que permite filtrar dados usando correspondência de string. Ela é atualizada após cada
tecla pressionada. Tente digitar j
para restringir a tabela abaixo a João e Jessica.
Estado
Nome | Tipo | Padrão | Descrição |
---|---|---|---|
valor | string ou objeto | nenhum | O texto inserido no campo de entrada de controle. |
Opções
Nome | Tipo | Padrão | Descrição |
---|---|---|---|
filterColumnIndex | number | nenhum |
A coluna da tabela de dados na qual o filtro deve operar. É obrigatório fornecer
essa opção ou filterColumnLabel . Se ambos estiverem presentes, esta opção terá precedência.
|
filterColumnLabel | string | nenhum |
O rótulo da coluna em que o filtro deve operar. É obrigatório fornecer
essa opção ou filterColumnIndex . Se ambos estiverem presentes,
filterColumnIndex terá precedência.
|
matchType | string | "prefixo" |
Define se o controle deve corresponder apenas a valores exatos ('exact' ), a prefixos que comecem
no início do valor ('prefix' ) ou a qualquer substring ('any' ).
|
caseSensitive | boolean | false | Indica se a correspondência deve diferenciar maiúsculas de minúsculas ou não. |
useFormattedValue | boolean | false | Define se o controle deve corresponder a valores formatados de célula ou novamente a valores reais. |
ui | Objeto | null |
Um objeto com membros para configurar vários aspectos da interface do controle.
Para especificar as propriedades desse objeto, use a notação literal de objeto, como mostrado aqui:
{label: 'Name', labelSeparator: ':'} |
ui.realtimeTrigger | boolean | verdadeiro | Define se o controle deve corresponder sempre que uma tecla for pressionada ou somente quando o campo de entrada "mudar" (perda de foco ou pressionar a tecla Enter). |
ui.label | string | automático | O rótulo a ser exibido ao lado do campo de entrada. Se não for especificado, será usado o rótulo da coluna em que o controle opera. |
ui.labelSeparator | string | nenhum | Uma string de separador anexada ao rótulo para separar visualmente o rótulo do campo de entrada. |
ui.labelStacking | string | "horizontal" |
Se o rótulo deve ser exibido acima (empilhamento vertical) ou ao lado (empilhamento horizontal) do campo de entrada. Use 'vertical' ou 'horizontal' .
|
ui.cssClass | string | 'google-visualization-controls-stringfilter' | A classe CSS a ser atribuída ao controle para estilização personalizada. |