Visualização: gráfico de imagem genérica

Importante: a parte de gráficos de imagem das Ferramentas de gráficos do Google foi oficialmente suspensa em 20 de abril de 2012. Ele continuará funcionando de acordo com nossa política de descontinuação.

Visão geral

O gráfico de imagem genérica é um wrapper genérico para todos os gráficos produzidos pela API de gráficos do Google. Leia a documentação da API de gráficos antes de tentar usar essa visualização. É possível enviar até 16 mil dados usando essa visualização, ao contrário do limite de 2 mil em chamadas diretas para a API de gráficos.

Todos os dados são transmitidos para os gráficos usando DataTable ou DataView. Além disso, alguns rótulos são transmitidos como colunas na tabela de dados.

Todos os outros parâmetros de URL da API de gráficos (exceto chd) são transmitidos como opções.

Autor: Google

Exemplos

Aqui estão exemplos de vários tipos diferentes de gráficos.

Gráfico de linhas

<html>
  <head>
    <script type='text/javascript' src='https://www.gstatic.com/charts/loader.js'></script>
    <script type='text/javascript'>
    google.charts.load("current", {packages:["imagechart"]});
    </script>
    <script type='text/javascript'>
      google.charts.setOnLoadCallback(drawChart);
      function drawChart() {
        var dataTable = new google.visualization.DataTable();
        dataTable.addColumn('string');
        dataTable.addColumn('number');
        dataTable.addColumn('string');

        // Row data is [chl, data point, point label]
        dataTable.addRows([
        ['January',40,undefined],
        ['February',60,'Initial recall'],
        ['March',60,'Product withdrawn'],
        ['April',45,undefined],
        ['May',47,'Relaunch'],
        ['June',75,undefined],
        ['July',70,undefined],
        ['August',72,undefined]
        ]);

        var options = {cht: 'lc', chds:'0,160', annotationColumns:[{column:2, size:12, type:'flag', priority:'high'},]};

        var chart = new google.visualization.ImageChart(document.getElementById('line_div'));
        chart.draw(dataTable, options);
      }
    </script>
  </head>
  <body>
    <div id='line_div'></div>
  </body>
</html>

Gráfico de barras verticais

Nos gráficos de barras encapsuladas, não é necessário especificar chxt='x' como você faria ao chamar o gráfico. Se você não especificar um eixo, o gráfico de imagem genérica tentará configurar o gráfico corretamente por padrão.

<html>
  <head>
    <script type='text/javascript' src='https://www.gstatic.com/charts/loader.js'></script>
    <script type='text/javascript'>
    google.charts.load("current", {packages:["imagechart"]});
    </script>
    <script type='text/javascript'>
      google.charts.setOnLoadCallback(drawChart);
      function drawChart() {
        var dataTable = new google.visualization.DataTable();
        dataTable.addColumn('number');
        dataTable.addColumn('number');
        dataTable.addRows([
          [10,50],
          [50,60],
          [60,100],
          [80,40],
          [40,20]
        ]);

        var options = {cht: 'bvs', chs: '300x125', colors:['#4D89F9','#C6D9FD'],
          chds:'0,160', chxl:'0:|oranges|apples|pears|bananas|kiwis|'};

        var chart = new google.visualization.ImageChart(document.getElementById('bar_div'));
        chart.draw(dataTable, options);
      }
    </script>
  </head>
  <body>
    <div id='bar_div'></div>
  </body>
</html>

Gráfico de pizza

<html>
  <head>
    <script type='text/javascript' src='https://www.gstatic.com/charts/loader.js'></script>
    <script type='text/javascript'>
    google.charts.load("current", {packages:["imagechart"]});
    </script>
    <script type='text/javascript'>
      google.charts.setOnLoadCallback(drawChart);
        function drawChart() {
        var dataTable = new google.visualization.DataTable();
        dataTable.addColumn('string');
        dataTable.addColumn('number');
        dataTable.addRows([
          ['January',12],
          ['February',8],
          ['March',3]
        ]);

        var options = {cht: 'p', title: 'Sales per Month', chp: 0.628, chs: '400x200',
          colors:['#3399CC','#00FF00','#0000FF']};

        var chart = new google.visualization.ImageChart(document.getElementById('pie_div'));
        chart.draw(dataTable, options);
      }
    </script>
  </head>
  <body>
    <div id='pie_div'></div>
  </body>
</html>

Gráfico de radar

<html>
  <head>
    <script type='text/javascript' src='https://www.gstatic.com/charts/loader.js'></script>
    <script type='text/javascript'>
    google.charts.load("current", {packages:["imagechart"]});
    </script>
    <script type='text/javascript'>
      google.charts.setOnLoadCallback(drawChart);
      function drawChart() {
        var dataTable = new google.visualization.DataTable();
        dataTable.addColumn('number');
        dataTable.addColumn('number');
        dataTable.addRows([
          [100,10],
          [80,20],
          [60,30],
          [30,40],
          [25,50],
          [20,60],
          [10,70]
        ]);

        var chart = new google.visualization.ImageChart(document.getElementById('radar_div'));

        var options = {cht: 'rs', chco: '00FF00,FF00FF', chg: '25.0,25.0,4.0,4.0', chm: 'B,FF000080,0,1.0,5.0|B,FF990080,1,1.0,5.0',};
        chart.draw(dataTable, options);
      }
    </script>
  </head>
  <body>
    <div id='radar_div'></div>
  </body>
</html>

Gráfico de mapa

<html>
  <head>
    <script type='text/javascript' src='https://www.gstatic.com/charts/loader.js'></script>
    <script type='text/javascript'>
      google.charts.load("current", {packages:["imagechart"]});
    </script>
    <script type='text/javascript'>
      google.charts.setOnLoadCallback(drawChart);
      function drawChart() {
        var dataTable = new google.visualization.DataTable();
        dataTable.addColumn('string');
        dataTable.addColumn('number');
        dataTable.addRows([
          ['DZ',0],
          ['EG',50],
          ['MG',50],
          ['GM',35],
          ['KE',100],
          ['ZA',100]
        ]);

        var options = {cht: 't', chtm: 'africa', chco: '777777,FFC6A5,FF0000', chs: '440x220'};
        var chart = new google.visualization.ImageChart(document.getElementById('map_div'));
        chart.draw(dataTable, options);
      }
    </script>
  </head>
<body>
    <div id='map_div'></div>
</body>
</html>

Carregando

O nome do pacote google.charts.load é "imagechart".

  google.charts.load('current', {'packages': ['imagechart']});

O nome da classe da visualização é google.visualization.ImageChart

  var visualization = new google.visualization.ImageChart(container_div);

Formato de dados

Há dois formatos de dados generalizados: um para gráficos de mapas e outro para todos os outros gráficos. O único formato numérico compatível com dados é o tipo de número em JavaScript.

Observação: não codifique para URL nenhum valor de string transmitido como dados ou opções.

Gráficos de mapa

Um gráfico de mapa usa uma tabela de dados com duas colunas obrigatórias:

Consulte a documentação do gráfico de mapa para mais informações.

Gráficos que não são mapas

Os gráficos que não são de mapa usam uma tabela de dados com duas colunas opcionais (uma no início e uma no final) e uma ou mais colunas de dados no meio:

  • Primeira coluna: [optional, string] cada entrada representa um rótulo usado no eixo X (equivalente ao parâmetro chl ou chxl) para gráficos compatíveis.
  • Próximas colunas: qualquer número de colunas numéricas, cada uma representando uma série de dados.
  • Últimas colunas - [optional, string] qualquer número de colunas de string depois das colunas de dados, em que cada entrada representa um rótulo de ponto de dados para gráficos compatíveis. Se você quiser usar essa coluna, especifique a opção annotationColumns.

Os dados serão exibidos de maneiras diferentes, dependendo do tipo de gráfico. Consulte a documentação do gráfico.

Uma observação sobre os índices de coluna: a visualização de gráfico de imagem genérica remove as colunas de string da tabela de dados antes de enviá-la para o serviço da API de gráficos do Google. Portanto, os índices de coluna nas opções, métodos e eventos definidos nesta página incluem as colunas de string na contagem de índices. No entanto, os índices de coluna em qualquer opção manipulada pelo serviço da API Chart (por exemplo, a opção chm) ignoram as colunas de string na contagem de índices.

Opções de configuração

As opções a seguir foram definidas para essa visualização. Defina-as no objeto de opções transmitido para o método draw() da visualização. Nem todas as opções a seguir são compatíveis com todos os tipos de gráfico. Consulte a documentação do seu tipo de gráfico de imagem estática. Você pode transmitir qualquer parâmetro de URL da API de gráficos como opção. Por exemplo, o parâmetro de URL chg=50,50 de uma visualização de gráfico é especificado desta maneira: options['chg'] = '50,50'.

Observação sobre cores: as opções de cor, como colors, color e backgroundColor, são especificadas no formato de cores da API Chart. Esse formato é semelhante ao #RRGGBB, exceto pelo fato de incluir um quarto número hexadecimal opcional para indicar a transparência. Cores legíveis por humanos, como "vermelho", "verde", "azul" etc. não são compatíveis. O formato de cores da API de gráficos do Google não inclui o símbolo # inicial, mas as opções genéricas de visualização do gráfico de imagem aceitam códigos de cores com ou sem #.

Nome Tipo Padrão Descrição
annotationColumns Array<object> nenhum

Rótulos de pontos de dados para vários tipos de gráficos. Trata-se de uma matriz de objetos, cada um atribuindo um rótulo formatado a um ponto de dados no gráfico. Essa opção está disponível apenas para gráficos que oferecem suporte a pontos de dados (consulte o tópico vinculado para saber quais), e a tabela de dados precisa ter pelo menos uma das colunas de rótulo da string.

Cada objeto da matriz tem as seguintes propriedades:

  • column [number] - O índice baseado em zero da coluna que contém o texto usado na anotação. Você não precisa de um valor em cada linha da coluna.
  • positionColumn [número] - O índice baseado em zero da coluna que contém o ponto de dados que está sendo rotulado. O padrão é a primeira coluna de dados.
  • color [string]: a cor do texto da anotação no formato de cores da API de gráficos. O padrão é "#000000" (preto).
  • size [number]: o tamanho da fonte da anotação, em pixels.
  • priority [string]: "low", "medium" ou "high", especificando a camada em que o rótulo será desenhado. O padrão é "médio", que especifica que o rótulo é desenhado depois de barras e linhas, mas antes de outros rótulos.
  • type [string]: "text" ou "flag". "text" cria uma anotação de texto simples e "flag" cria uma anotação de balão de fala.

Exemplo : este snippet define um rótulo de texto preto de 12 pixels, com texto retirado da coluna 0 e atribuído ao ponto de dados na coluna 2 da mesma linha: options['annotationColumns'] = [{column: 2, positionColumn: 0, color: '#000000', size: '12', priority: 'high', type: 'text'}];

backgroundColor string '#FFFFFF' (branco) A cor do plano de fundo do gráfico no formato de cores da API de gráficos.
color string Automático Especifica uma cor de base a ser usada para todas as séries. Cada série será uma gradação da cor especificada. As cores são especificadas no formato de cores da API de gráficos. Será ignorado se colors for especificado.
cores Matriz<string> Automático Use para atribuir cores específicas a cada série de dados. As cores são especificadas no formato de cores da API de gráficos. A cor i é usada para a coluna de dados i, envolvendo o início se houver mais colunas de dados do que cores. Se variações de uma única cor forem aceitáveis para todas as séries, use a opção color.
enableEvents boolean false Faz com que os gráficos lancem eventos acionados pelo usuário, como clicar ou passar o mouse. Compatível apenas com tipos de gráficos específicos. Consulte Eventos abaixo.
fill boolean false Se verdadeiro, preenche a área abaixo de cada linha. Disponível apenas para gráficos de linhas.
firstHiddenColumn number nenhum

Um índice de coluna de dados. A coluna listada, assim como todas as colunas seguintes, não serão usadas para desenhar os principais elementos de série do gráfico (como linhas em um gráfico de linhas ou barras em um gráfico de barras), mas serão usadas como dados para marcadores e outras anotações. As colunas de string estão incluídas nessa contagem de índice.

height number 200 Altura do gráfico, em pixels. Se ausente ou não estiver em um intervalo aceitável, a altura do elemento contêiner será usada. Se esse valor também estiver fora do intervalo aceitável, a altura padrão será usada.
rótulos string "none"

[Somente gráfico de pizza] Qual rótulo exibir para cada fatia, se houver. Escolha entre os seguintes valores:

  • "none": sem rótulos.
  • "value" - mostra o valor da fração como um rótulo.
  • "name" - mostra o nome da fatia (o nome da coluna) como um rótulo.
lenda string "direita" Onde exibir uma legenda de gráfico em relação ao gráfico. Especifique uma das seguintes opções: "top", "bottom", "left", "right" ou "none". Ignorado em gráficos que não incluem legendas (como gráficos de mapa).
max number Valor máximo dos dados O valor máximo mostrado na escala. Ignorado para gráficos de pizza. O padrão é o valor máximo de dados, exceto para gráficos de barras, em que o padrão é o valor máximo de dados. Isso é ignorado em gráficos de barras quando a tabela tem mais de uma coluna de dados.
min number Valor mínimo de dados O valor mínimo mostrado na balança. Ignorado para gráficos de pizza. O padrão é o valor mínimo de dados, exceto para gráficos de barras, em que o padrão é zero. Isso é ignorado em gráficos de barras quando a tabela tem mais de uma coluna de dados.
showCategoryLabels boolean verdadeiro Indica se os rótulos devem aparecer no eixo de categoria (por exemplo, linha). Disponível apenas para gráficos de linhas e de barras.
showValueLabels boolean verdadeiro "True" mostra um rótulo no eixo de valor. Disponível apenas para gráficos de linhas e barras.
singleColumnDisplay number nenhum Renderiza apenas a coluna de dados especificada. Esse número é um índice da tabela com base em zero e 0 é a primeira coluna de dados. A cor atribuída à única coluna é a mesma que quando todas as colunas são renderizadas. Não pode ser usada com gráficos de pizza ou mapa.
título string String em branco O título do gráfico. Se não for especificado, nenhum título será exibido. O parâmetro de gráfico equivalente é chtt.
valueLabelsInterval number Automático O intervalo em que os rótulos dos eixos de valor são mostrados. Por exemplo, se min for 0, max for 100 e valueLabelsInterval for 20, o gráfico mostrará rótulos de eixo em (0, 20, 40, 60, 80 100).
width number 400 Largura do gráfico, em pixels. Se ausente ou não estiver em um intervalo aceitável, a largura do elemento contêiner será usada. Se esse valor também estiver fora do intervalo aceitável, a largura padrão será usada.

Métodos

Método Tipo de retorno Descrição
draw(data, options) Nenhum Desenha o mapa.
getImageUrl() String Retorna o URL da API de gráficos do Google usado para solicitar o gráfico. Ele pode ter mais de 2.000 caracteres. Consulte a API de gráficos do Google para mais detalhes.

Eventos

Se você definir a propriedade enableEvents como verdadeira, os gráficos de suporte vão gerar eventos para eventos do usuário listados na tabela abaixo. Todos esses eventos retornam um objeto event com as seguintes propriedades:

  • type: string que representa o tipo de evento.
  • region: um ID da região afetada. Adicione o parâmetro chof=json ao tipo de gráfico bruto para ver uma lista de nomes disponíveis. Consulte chof=json para mais detalhes.
Nome Descrição tipo Value
error Disparado quando ocorre um erro ao tentar renderizar o gráfico. ID, mensagem
onmouseover Disparado quando o usuário passa o mouse sobre um elemento do gráfico. "mouseover"
onmouseout Disparado quando o usuário afasta o mouse de um elemento do gráfico. "mouseout"
onclick Disparado quando um usuário clica em um elemento do gráfico.

“clicar”

Quais gráficos são compatíveis com eventos?

Todos os gráficos compatíveis com o parâmetro chof=json são compatíveis com a geração de eventos, ou seja, todos os gráficos, exceto gráficos especiais, como códigos QR.

Exemplo de manipulação de eventos

Veja um exemplo que mostra uma barra que registra cliques do mouse.

<!DOCTYPE html>
<html  xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html;  charset=utf-8"/>
    <title>
       Google Image Events Sample
    </title>
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">
      google.charts.load('current', {packages: ['imagechart']});
    </script>
    <script type="text/javascript">
      function drawVisualization() {
        var dataTable = new google.visualization.DataTable();
        dataTable.addColumn('number');
        dataTable.addColumn('number');
        dataTable.addRows([
          [10,50],
          [50,60],
          [60,100],
          [80,40],
          [40,20]
        ]);

        var options = {cht:  'bvs', chs: '300x125',  colors:['#4D89F9','#C6D9FD'],
                       chds:'0,160', chxl:'0:|oranges|apples|pears|bananas|kiwis|', enableEvents:true};

        var chart = new  google.visualization.ImageChart(document.getElementById('visualization'));
        chart.draw(dataTable, options);

        // Assign  event  handler
        google.visualization.events.addListener(chart, 'onclick', mouseEventHandler);
      }

      google.charts.setOnLoadCallback(drawVisualization);

      // Define an event handler
      function mouseEventHandler(event)  {
        document.getElementById('debugger').innerHTML += "You clicked " + event.region + "<br/>";
      }

    </script>
  </head>
  <body style="font-family: Arial;border: 0 none;">
    <div id="visualization" style="width: 300px; height: 300px;"></div>
    <div id="debugger"></div>
  </body>
</html>

Política de dados

Os dados são enviados ao serviço da API Google Chart.

Localização

Essa visualização é compatível com qualquer localização compatível com o serviço de gráficos do Google.