Breve y dulce: reescribiendo una función de gráfico alto en R.
Descubrí cómo escribir una función en gráficos altos para clasificar mis valores y categorías en un mapa de calor. Para que la categoría con el número más alto se muestre en la parte superior y viceversa. Esto se representa en una columna de año que tiene una clasificación diferente de cada año. El problema es que el código se realiza en el contenedor highcharts en javascropt y quiero recrear este fragmento de código en un archivo R-markdown, pero no puedo averiguar cómo envolver la función que clasifica los valores y categorías como mi gráfico alto el código lo hace. Específicamente esta función:
const processedData = []; columnsData.forEach(column => { column.data.sort((a, b) => a.value - b.value); column.data.forEach((dataEl, index) => { processedData.push({ name: column.year, y: index, value: dataEl.value, dataLabels: { format: dataEl.name + ': ' + dataEl.value } }); }); });Cualquier ayuda para ajustar la función a highcharter sería excelente.
const columnsData = [{ year: '2001', data: [{ name: 'A', value: 55 }, { name: 'B', value: 45 }, { name: 'C', value: 67 }] }, { year: '2002', data: [{ name: 'D', value: 15 }, { name: 'E', value: 24 }, { name: 'F', value: 67 }] }, { year: '2003', data: [{ name: 'G', value: 77 }, { name: 'H', value: 56 }, { name: 'I', value: 58 }] }]; const processedData = []; columnsData.forEach(column => { column.data.sort((a, b) => a.value - b.value); column.data.forEach((dataEl, index) => { processedData.push({ name: column.year, y: index, value: dataEl.value, dataLabels: { format: dataEl.name + ': ' + dataEl.value } }); }); }); console.log(processedData) Highcharts.chart('container', { chart: { type: 'heatmap', marginTop: 40, marginBottom: 80, plotBorderWidth: 1 }, xAxis: { type: 'category' }, yAxis: { visible: false }, colorAxis: { min: 0, minColor: '#FFFFFF', maxColor: Highcharts.getOptions().colors[0] }, legend: { align: 'right', layout: 'vertical', margin: 0, verticalAlign: 'top', y: 25, symbolHeight: 280 }, series: [{ name: 'Sales per employee', borderWidth: 1, data: processedData, dataLabels: { enabled: true, color: '#000000' } }] });Carta alta (RMD):
spx_highchart %>% hchart(type = "heatmap", hcaes( x = year, y = class, value = returns, color = colour, borderWidth = 1 )Violín JS: https://jsfiddle.net/6y45fdjt/