Visão geral
Observação:o JavaScript conta os meses a partir de zero: janeiro é 0, fevereiro é 1o e dezembro é 11. Se o gráfico do seu calendário parece estar inclinado em um mês, é por isso.
Um gráfico de calendário é uma visualização usada para mostrar a atividade durante um longo período, como meses ou anos. Eles são mais indicados para mostrar como a quantidade varia de acordo com o dia da semana ou suas tendências ao longo do tempo.
O gráfico do calendário poderá passar por revisões substanciais em versões futuras do Google Charts.
Os gráficos da agenda são renderizados no navegador usando SVG ou VML, o que for mais apropriado para o navegador do usuário. Como todos os gráficos do Google, os gráficos de agenda mostram dicas quando o usuário passa o cursor sobre os dados. E crédito quando o crédito é devido: nosso gráfico de calendário foi inspirado na visualização de calendário do D3.
Um exemplo simples
Digamos que queríamos exibir como o comparecimento de uma equipe esportiva variou durante a temporada. Com um gráfico de calendário, podemos usar o brilho para indicar os valores e permitir que as pessoas vejam as tendências rapidamente:
Passe o cursor sobre os dias individuais para ver os valores de dados subjacentes.
Para criar um gráfico de calendário, carregue o pacote calendar
e crie duas colunas, uma para as datas e outra para os valores. Uma terceira coluna opcional para estilos personalizados será lançada em uma versão futura do Google Charts.
Em seguida, preencha as linhas com pares de data-valor, conforme mostrado abaixo.
<html> <head> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load("current", {packages:["calendar"]}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var dataTable = new google.visualization.DataTable(); dataTable.addColumn({ type: 'date', id: 'Date' }); dataTable.addColumn({ type: 'number', id: 'Won/Loss' }); dataTable.addRows([ [ new Date(2012, 3, 13), 37032 ], [ new Date(2012, 3, 14), 38024 ], [ new Date(2012, 3, 15), 38024 ], [ new Date(2012, 3, 16), 38108 ], [ new Date(2012, 3, 17), 38229 ], // Many rows omitted for brevity. [ new Date(2013, 9, 4), 38177 ], [ new Date(2013, 9, 5), 38705 ], [ new Date(2013, 9, 12), 38210 ], [ new Date(2013, 9, 13), 38029 ], [ new Date(2013, 9, 19), 38823 ], [ new Date(2013, 9, 23), 38345 ], [ new Date(2013, 9, 24), 38436 ], [ new Date(2013, 9, 30), 38447 ] ]); var chart = new google.visualization.Calendar(document.getElementById('calendar_basic')); var options = { title: "Red Sox Attendance", height: 350, }; chart.draw(dataTable, options); } </script> </head> <body> <div id="calendar_basic" style="width: 1000px; height: 350px;"></div> </body> </html>
Dias
Cada quadrado em um gráfico de calendário representa um dia. Atualmente, não é possível personalizar a cor das células de dados, mas isso mudará na próxima versão dos Gráficos Google.
Se todos os valores dos dados forem positivos, as cores variarão do branco ao azul, com o azul mais profundo indicando os valores mais altos. Se houver valores de dados negativos, eles aparecerão em laranja, conforme mostrado abaixo.
O código dessa agenda é semelhante ao da primeira, só que as linhas são assim:
[ new Date(2013, 9, 4), 10 ], [ new Date(2013, 9, 5), 3 ], [ new Date(2013, 9, 7), -1 ], [ new Date(2013, 9, 8), 2 ], [ new Date(2013, 9, 12), -1 ], [ new Date(2013, 9, 13), 1 ], [ new Date(2013, 9, 15), 1 ], [ new Date(2013, 9, 16), -4 ],
É possível alterar o tamanho dos dias ("células") com a opção calendar.cellSize
:
Aqui, mudamos calendar.cellSize
para 10, reduzindo os dias e, portanto, o gráfico como um todo.
var options = { title: 'Red Sox Attendance', calendar: { cellSize: 10 }, };
Dias sem valores de dados podem ser personalizados com a opção noDataPattern
:
Aqui, definimos color
como azul-claro e backgroundColor
como um tom um pouco mais escuro:
var options = { title: "Red Sox Attendance", height: 350, noDataPattern: { backgroundColor: '#76a7fa', color: '#a0c3ff' } };
Você pode controlar a cor, a largura e a opacidade da borda da célula com calendar.cellColor
:
Escolha uma cor de traço que se diferencie de monthOutlineColor
ou escolha uma opacidade baixa. Estas são as opções para o gráfico acima:
var options = { title: 'Red Sox Attendance', height: 350, calendar: { cellColor: { stroke: '#76a7fa', strokeOpacity: 0.5, strokeWidth: 1, } } };
Se você focar em um dia no gráfico acima, a borda será destacada em vermelho. É possível controlar esse comportamento com as opções calendar.focusedCellColor
:
var options = { title: 'Red Sox Attendance', height: 350, calendar: { focusedCellColor: { stroke: '#d3362d', strokeOpacity: 1, strokeWidth: 1, } } };
Semanas
Por padrão, os dias da semana são identificados com as primeiras letras de domingo a sábado.
Não é possível mudar a ordem dos dias, mas você pode mudar quais letras são usadas com
a opção calendar.daysOfWeek
. Além disso, é possível controlar o padding entre os dias da semana e o gráfico com calendar.dayOfWeekRightSpace
, além de personalizar o estilo do texto com calendar.dayOfWeekLabel
:
Aqui, alteramos a fonte dos rótulos da semana, colocamos um padding de 10 pixels entre os rótulos e os dados do gráfico e iniciamos as semanas na segunda-feira.
var options = { title: 'Red Sox Attendance', height: 350, calendar: { dayOfWeekLabel: { fontName: 'Times-Roman', fontSize: 12, color: '#1a8763', bold: true, italic: true, }, dayOfWeekRightSpace: 10, daysOfWeek: 'DLMMJVS', } };
Meses
Por padrão, os meses são identificados por linhas cinza-escuras. Você pode usar a opção calendar.monthOutlineColor
para controlar as bordas, calendar.monthLabel
para personalizar a fonte e calendar.underMonthSpace
para ajustar o padding:
Definimos a fonte do rótulo em negrito Times-Roman de 12 pt vermelho profundo, definimos os contornos com a mesma cor e colocamos um padding de 16 pixels. Os contornos de meses não utilizados são definidos com uma cor mais fraca da mesma tonalidade.
var options = { title: 'Red Sox Attendance', height: 350, calendar: { monthLabel: { fontName: 'Times-Roman', fontSize: 12, color: '#981b48', bold: true, italic: true }, monthOutlineColor: { stroke: '#981b48', strokeOpacity: 0.8, strokeWidth: 2 }, unusedMonthOutlineColor: { stroke: '#bc5679', strokeOpacity: 0.8, strokeWidth: 1 }, underMonthSpace: 16, } };
Anos
Os anos nos gráficos de calendário estão sempre na borda esquerda do gráfico e podem ser personalizados com calendar.yearLabel
e calendar.underYearSpace
:
Definimos a fonte do ano como Times-Roman negrito 32pt verde escuro em negrito e adicionamos dez pixels entre os rótulos do ano e a parte inferior do gráfico:
var options = { title: 'Red Sox Attendance', height: 350, calendar: { underYearSpace: 10, // Bottom padding for the year labels. yearLabel: { fontName: 'Times-Roman', fontSize: 32, color: '#1A8763', bold: true, italic: true } } };
Carregando
O nome do pacote google.charts.load
é "calendar"
:
google.charts.load("current", {packages: ["calendar"]});
O nome da classe da visualização é google.visualization.Calendar
:
var visualization = new google.visualization.Calendar(container);
Formato de dados
Linhas: cada linha na tabela representa uma data.
Columns:
Coluna 0 | Coluna 1 | ... | Coluna N (opcional) | |
---|---|---|---|---|
Finalidade: | Datas | Valores | ... | Papéis opcionais |
Tipo de dados: | date, datetime ou timeofday | number | ... | |
Role: | domínio | dados | ... | |
Papéis de coluna opcionais: | Nenhum controle |
Nenhum controle |
... |
Opções de configuração
Nome | |
---|---|
calendar.cellColor |
A opção var options = { calendar: { cellColor: { stroke: 'red', // Color the border of the squares. strokeOpacity: 0.5, // Make the borders half transparent. strokeWidth: 2 // ...and two pixels thick. } } }; Tipo: objeto
Padrão:
{ stroke: '#fff', strokeOpacity: 1, strokeWidth: 1 } |
calendar.cellSize |
O tamanho dos quadrados de dia do calendário: var options = { calendar: { cellSize: 10 } }; Tipo: inteiro
Padrão:16
|
calendar.dayOfWeekLabel |
Controla o estilo da fonte dos rótulos da semana na parte superior do gráfico: var options = { calendar: { dayOfWeekLabel: { fontName: 'Times-Roman', fontSize: 12, color: 'black', bold: false, italic: false } } }; Tipo: objeto
Padrão:
{ fontName: 'sans-serif', color: '#888', bold: false, italic: false }
|
calendar.dayOfWeekRightSpace |
A distância entre a borda direita dos rótulos da semana e a borda esquerda dos quadrados de dia do gráfico. Tipo: inteiro
Padrão:4
|
calendar.daysOfWeek |
Os rótulos de uma única letra a serem usados de domingo a sábado. Tipo: string
Padrão:
'SMTWTFS' |
calendar.focusedCellColor |
Quando o usuário focar, por exemplo, passando o cursor sobre um quadrado do dia, os gráficos do calendário vão destacar esse quadrado. var options = { calendar: focusedCellColor: { stroke: 'red', strokeOpacity: 0.8, strokeWidth: 3 } } }; Tipo: objeto
Padrão:
{ stroke: '#000', strokeOpacity: 1, strokeWidth: 2 } |
calendar.monthLabel |
Estilo dos marcadores de mês, por exemplo: var options = { calendar: { monthLabel: { fontName: 'Times-Roman', fontSize: 16, color: 'green', bold: true, italic: false } } }; Tipo: objeto
Padrão:
{ fontName: 'sans-serif', color: '#888', bold: false, italic: false }
|
calendar.monthOutlineColor |
Os meses com valores de dados são delineados dos outros usando uma borda nesse estilo. var options = { calendar: { monthOutlineColor: { stroke: 'blue', strokeOpacity: 0.8, strokeWidth: 2 } } };Consulte também calendar.unusedMonthOutlineColor .
Tipo: objeto
Padrão:
{ stroke: '#000', strokeOpacity: 1, strokeWidth: 1 } |
calendar.underMonthSpace |
O número de pixels entre a parte inferior dos marcadores de mês e a parte superior dos quadrados do dia: var options = { calendar: { underMonthSpace: 12 } }; Tipo: inteiro
Padrão:6
|
calendar.underYearSpace |
O número de pixels entre o rótulo de ano na parte inferior e a parte inferior do gráfico: var options = { calendar: { underYearSpace: 2 } }; Tipo: inteiro
Padrão:0
|
calendar.unusedMonthOutlineColor |
Os meses sem valores de dados são delineados de outros usando uma borda nesse estilo. var options = { calendar: { unusedMonthOutlineColor: { stroke: 'yellow', strokeOpacity: 0.8, strokeWidth: 2 } } };Consulte também calendar.monthOutlineColor .
Tipo: objeto
Padrão:
{ stroke: '#c9c9c9', strokeOpacity: 1, strokeWidth: 1 }
|
colorAxis |
Um objeto que especifica um mapeamento entre os valores da coluna de cores e as cores ou uma escala de gradiente. Para especificar as propriedades desse objeto, é possível usar a notação literal de objeto, como mostrado aqui: {minValue: 0, colors: ['#FF0000', '#00FF00']} Tipo: objeto
Padrão:nulo
|
colorAxis.colors |
Cores a serem atribuídas a valores na visualização. Uma matriz de strings, em que cada elemento é uma string de cor HTML, por exemplo: Tipo:matriz de strings de cores
Padrão:nulo
|
colorAxis.maxValue |
Se presente, especifica um valor máximo para os dados de cores do gráfico. Os valores de dados de cores desse valor
e de valores mais altos serão renderizados como a última cor no intervalo Tipo: número
Padrão:valor máximo da coluna de cor nos dados do gráfico
|
colorAxis.minValue |
Se presente, especifica um valor mínimo para os dados de cores do gráfico. Os valores de dados de cores desse valor
e de valores inferiores serão renderizados como a primeira cor no intervalo Tipo: número
Padrão:valor mínimo da coluna de cor nos dados do gráfico
|
colorAxis.values |
Se presente, controla como os valores são associados às cores. Cada valor é associado à cor correspondente na matriz Tipo:matriz de números
Padrão:nulo
|
forceIFrame |
Desenha o gráfico dentro de um frame inline. No IE8, essa opção é ignorada. Todos os gráficos do IE8 são desenhados em i-frames. Tipo: booleano
Padrão:false
|
height |
Altura do gráfico, em pixels. Tipo: número
Padrão:altura do elemento contêiner
|
noDataPattern |
Os gráficos de calendário usam um padrão diagonal listrado para indicar que não há dados em um dia específico. Use as opções noDataPattern: { backgroundColor: '#76a7fa', color: '#a0c3ff' } Tipo: objeto
Padrão:nulo
|
tooltip.isHtml |
Defina como Observação: a personalização do conteúdo da dica HTML por meio do papel de dados da coluna de dicas não é compatível com as visualizações Gráfico de pizza e Gráfico de bolhas. Tipo: booleano
Padrão:true
|
width |
Largura do gráfico, em pixels. Tipo: número
Padrão:largura do elemento que o contém
|
Métodos
Método | |
---|---|
draw(data, options) |
Desenha o gráfico. O gráfico aceita outras chamadas de método somente depois que o evento Return Type: nenhum
|
getBoundingBox(id) |
Retorna um objeto que contém as informações de esquerda, parte superior, largura e altura do elemento
Os valores são relativos ao contêiner do gráfico. Chame essa função depois que o gráfico for desenhado. Tipo de retorno: objeto
|
getSelection() |
Retorna uma matriz das entidades de gráfico selecionadas.
As entidades selecionáveis são barras, entradas de legenda e categorias.
Uma barra corresponde a uma célula na tabela de dados, a uma entrada de legenda em uma coluna (o índice de linha é nulo) e uma categoria a uma linha (o índice de coluna é nulo).
Neste gráfico, apenas uma entidade pode ser selecionada por vez.
Tipo de retorno:matriz de elementos de seleção
|
setSelection() |
Seleciona as entidades de gráfico especificadas. Cancela qualquer seleção anterior.
As entidades selecionáveis são barras, entradas de legenda e categorias.
Uma barra corresponde a uma célula na tabela de dados, a uma entrada de legenda em uma coluna (o índice de linha é nulo) e uma categoria a uma linha (o índice de coluna é nulo).
Neste gráfico, apenas uma entidade pode ser selecionada por vez.
Return Type: nenhum
|
clearChart() |
Limpa o gráfico e libera todos os recursos alocados. Return Type: nenhum
|
Eventos
Nome | |
---|---|
error |
Disparado quando ocorre um erro ao tentar renderizar o gráfico. Properties:ID, message
|
onmouseover |
Disparado quando o usuário passa o mouse sobre uma entidade visual. Transmite o índice de linha e o valor de data da entidade. Se não houver um elemento da tabela de dados para a entidade, o valor retornado para o índice de linhas será Propriedades: linha, data
|
onmouseout |
Disparado quando o usuário afasta o mouse de uma entidade visual. Transmite o índice de linha e o valor de data da entidade. Se não houver um elemento da tabela de dados para a entidade, o valor retornado
para o índice de linha será linha Properties, data
|
ready |
O gráfico está pronto para chamadas de métodos externos. Se você quiser interagir com o gráfico e chamar métodos depois de desenhá-lo, configure um listener para esse evento antes de chamar o método Properties:nenhuma
|
select |
Disparado quando o usuário clica em uma entidade visual. Para saber o que foi selecionado, chame
Properties:nenhuma
|
Política de dados
Todos os códigos e dados são processados e renderizados no navegador. Nenhum dado é enviado para nenhum servidor.