Estoy usando gráficos altos en mi aplicación angular. Dentro del gráfico, coloqué un botón personalizado para llevar al usuario a una nueva página.
El problema es que, cuando abro el gráfico en pantalla completa, usando el menú de exportación, la ubicación del botón personalizado está solo en la ubicación original. No cambia su posición con las dimensiones del gráfico, es decir, si las dimensiones del gráfico aumentan de 500x500 a 1280x1000, el botón no se mueve en consecuencia.
antes de entrar en pantalla completa
durante pantalla completa
Coloco el botón en el gráfico usando event.render. Realmente necesito:
Código para agregar botón al gráfico :
public static donutChartOptions: Options{ chart: { type: 'donut', events: { render(events) { let chartVal = this; chartVal.renderer .button('View Full Report', 460, 8, (e) => {}) .attr({ zIndex: 3, }) .on('click', function () { window.location.href = '#/home/viewDistribution'; }) .add(); } }, } }Puede usar valores dinámicos almacenados en un gráfico para crear el botón en la posición adecuada. Por ejemplo:
chart: { ..., events: { render(events) { const chart = this; const exportingBBox = chart.exportingGroup.getBBox(); const x = exportingBBox.x - 10; const y = 6; if (!chart.customButton) { chart.customButton = chart.renderer .button('View Full Report') .attr({ zIndex: 3, align: 'right' }) .on('click', function() { window.location.href = '#/home/viewDistribution'; }) .add(); } chart.customButton.attr({ x, y }); } } }Demostración en vivo: http://jsfiddle.net/BlackLabel/2hoznsab/
Referencia de API: https://api.highcharts.com/class-reference/Highcharts.SVGElement#attr