- Información sobre la herramienta: introducción
- Cómo especificar el tipo de información sobre la herramienta
- Información sobre la herramienta estándar
- Personalización del contenido de la información sobre la herramienta
- Cómo utilizar información sobre la herramienta HTML
- Personalización del contenido HTML
- Información sobre la rotación
- Cómo colocar gráficos en la información sobre la herramienta
- Acciones de la información sobre la herramienta
- Anota datos
- Gráficos compatibles
Información sobre la herramienta: introducción
La información sobre la herramienta es los cuadros pequeños que aparecen cuando te desplazas sobre algo. (Las tarjetas flotantes son más generales y pueden aparecer en cualquier lugar de la pantalla. La información sobre la herramienta siempre se adjunta a algo, como un punto en un gráfico de dispersión o una barra en un gráfico de barras).
En esta documentación, aprenderás a crear y personalizar información sobre herramientas en los gráficos de Google.
Cómo especificar el tipo de información sobre la herramienta
Google Charts crea información sobre herramientas automáticamente para todos los gráficos principales.
Se mostrarán como SVG de forma predeterminada, excepto en IE 8, donde se procesarán como VML. Puedes crear información sobre la herramienta de HTML en los gráficos principales si especificas tooltip.isHtml: true
en las opciones de gráficos que se pasan a la llamada draw(), que también te permitirá crear acciones de información sobre la herramienta.
Información sobre la herramienta estándar
Ante la ausencia de contenido personalizado, el contenido de la información sobre la herramienta se genera de forma automática en función de los datos subyacentes. Para ver la información sobre la herramienta, coloca el cursor del mouse sobre cualquiera de las barras del gráfico.
Cómo personalizar el contenido de la información sobre la herramienta
En este ejemplo, agregamos contenido personalizado a la información sobre la herramienta mediante la adición de una columna nueva a la DataTable y su marcado con la función de información sobre la herramienta.
Nota: Esto no es compatible con la visualización del cuadro de burbujas.
google.charts.load('current', {'packages':['corechart']}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var dataTable = new google.visualization.DataTable(); dataTable.addColumn('string', 'Year'); dataTable.addColumn('number', 'Sales'); // A column for custom tooltip content dataTable.addColumn({type: 'string', role: 'tooltip'}); dataTable.addRows([ ['2010', 600,'$600K in our first year!'], ['2011', 1500, 'Sunspot activity made this our best year ever!'], ['2012', 800, '$800K in 2012.'], ['2013', 1000, '$1M in sales last year.'] ]); var options = { legend: 'none' }; var chart = new google.visualization.ColumnChart(document.getElementById('tooltip_action')); chart.draw(dataTable, options); }
Cómo usar información sobre la herramienta HTML
Este ejemplo se basa en el anterior porque habilita la información sobre la herramienta de HTML. Observa la adición de tooltip.isHtml: true
a las opciones del gráfico.
google.charts.load('current', {'packages':['corechart']}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var dataTable = new google.visualization.DataTable(); dataTable.addColumn('string', 'Year'); dataTable.addColumn('number', 'Sales'); // A column for custom tooltip content dataTable.addColumn({type: 'string', role: 'tooltip'}); dataTable.addRows([ ['2010', 600,'$600K in our first year!'], ['2011', 1500, 'Sunspot activity made this our best year ever!'], ['2012', 800, '$800K in 2012.'], ['2013', 1000, '$1M in sales last year.'] ]); var options = { tooltip: {isHtml: true}, legend: 'none' }; var chart = new google.visualization.ColumnChart(document.getElementById('col_chart_html_tooltip')); chart.draw(dataTable, options); }
No se ve muy diferente, pero ahora podemos personalizar el HTML.
Cómo personalizar el contenido HTML
Todos los ejemplos anteriores tienen información sobre la herramienta usada con contenido de texto sin formato, pero el verdadero poder de la información sobre la herramienta HTML aparece cuando puedes personalizarla con lenguaje de marcado HTML. Para habilitar esto, debes hacer dos cosas:
-
Especifica
tooltip.isHtml: true
en las opciones del gráfico. Esto le indica al gráfico que dibuje la información sobre la herramienta en HTML (en lugar de SVG). -
Marca una columna completa o una celda específica en la tabla de datos con la propiedad personalizada
html
. Una columna de tabla de datos con la función de información sobre la herramienta y la propiedad HTML sería la siguiente:
dataTable.addColumn({'type': 'string', 'role': 'tooltip', 'p': {'html': true}})
Nota: Esto no funciona con la visualización del Gráfico de burbujas. El contenido de la información sobre la herramienta de HTML de Bubble Chart no se puede personalizar.
Importante: Asegúrate de que el código HTML en la información sobre la herramienta provenga de una fuente de confianza.
Si el contenido HTML personalizado incluye contenido generado por el usuario, es fundamental escapar ese contenido. De lo contrario, tus bellas visualizaciones estarán abiertas a los ataques de XSS.
El contenido HTML personalizado puede ser tan simple como agregar una etiqueta <img>
o poner en negrita algún texto:
El contenido HTML personalizado también puede incluir contenido generado de forma dinámica. Aquí, agregamos información sobre la herramienta que contiene una tabla generada de forma dinámica para cada valor de categoría. Dado que la información sobre la herramienta se adjunta al valor de fila, si desplazas el cursor sobre cualquiera de las barras, se mostrará la información sobre la herramienta HTML.
En este ejemplo, se muestra cómo una información sobre la herramienta de HTML personalizada se puede adjuntar a una columna de dominio. (En los ejemplos anteriores, se adjuntaba a una columna de datos). Para activar la información sobre la herramienta del eje de dominio, configura la opción focusTarget: 'category'
.
function drawChart() { var dataTable = new google.visualization.DataTable(); dataTable.addColumn('string', 'Country'); // Use custom HTML content for the domain tooltip. dataTable.addColumn({'type': 'string', 'role': 'tooltip', 'p': {'html': true}}); dataTable.addColumn('number', 'Gold'); dataTable.addColumn('number', 'Silver'); dataTable.addColumn('number', 'Bronze'); dataTable.addRows([ ['USA', createCustomHTMLContent('https://upload.wikimedia.org/wikipedia/en/a/a4/Flag_of_the_United_States.svg', 46, 29, 29), 46, 29, 29], ['China', createCustomHTMLContent('https://upload.wikimedia.org/wikipedia/commons/f/fa/Flag_of_the_People%27s_Republic_of_China.svg', 38, 27, 23), 38, 27, 23], ['UK', createCustomHTMLContent('https://upload.wikimedia.org/wikipedia/commons/a/ae/Flag_of_the_United_Kingdom.svg', 29, 17, 19), 29, 17, 19] ]); var options = { title: 'London Olympics Medals', colors: ['#FFD700', '#C0C0C0', '#8C7853'], // This line makes the entire category's tooltip active. focusTarget: 'category', // Use an HTML tooltip. tooltip: { isHtml: true } }; // Create and draw the visualization. new google.visualization.ColumnChart(document.getElementById('custom_html_content_div')).draw(dataTable, options); } function createCustomHTMLContent(flagURL, totalGold, totalSilver, totalBronze) { return '<div style="padding:5px 5px 5px 5px;">' + '<img src="' + flagURL + '" style="width:75px;height:50px"><br/>' + '<table class="medals_layout">' + '<tr>' + '<td><img src="https://upload.wikimedia.org/wikipedia/commons/1/15/Gold_medal.svg" style="width:25px;height:25px"/></td>' + '<td><b>' + totalGold + '</b></td>' + '</tr>' + '<tr>' + '<td><img src="https://upload.wikimedia.org/wikipedia/commons/0/03/Silver_medal.svg" style="width:25px;height:25px"/></td>' + '<td><b>' + totalSilver + '</b></td>' + '</tr>' + '<tr>' + '<td><img src="https://upload.wikimedia.org/wikipedia/commons/5/52/Bronze_medal.svg" style="width:25px;height:25px"/></td>' + '<td><b>' + totalBronze + '</b></td>' + '</tr>' + '</table>' + '</div>'; }
Información sobre la rotación
La información sobre la herramienta en los gráficos de Google se puede rotar con CSS. En el siguiente gráfico, la información sobre la herramienta se rota 30° en sentido horario usando este CSS intercalado justo antes del div del gráfico:
<style>div.google-visualization-tooltip { transform: rotate(30deg); }</style>