Exibindo o HeatMap no DataGridView da Lista <List <T>> em C #
Eu tenho alguns dados na lista de toques. Minha tarefa é fazer um mapa de calor a partir disso. Sendo novato em C #, pesquisei na net e encontrei uma maneira de resolver essa tarefa pintando elementos no DataGridView, mas não entendo como fazê-lo. Então, eu tenho uma lista de pares:
using SpikeDataPacket = List<Tuple<double, double>>;
É assim que carrego dados dentro da grade:
public HeatForm(List<SpikeDataPacket> list)
{
SpikeList = list;
InitializeComponent();
var bindstim = new BindingList<SpikeDataPacket>(SpikeList);
var stimsource = new BindingSource(bindstim, null);
heatMap.DataSource = stimsource;
}
Mas isso exibe uma tabela com "capacidade" e "contagem" dentro do DataGridView, mas não os dados. Além disso, encontrei o caminho para contar a cor, mas não sei como aplicá-la:
private Color HeatMapColor(double value, double min, double max)
{
Color firstColour = Color.RoyalBlue;
Color secondColour = Color.LightSkyBlue;
// Example: Take the RGB
//135-206-250 // Light Sky Blue
// 65-105-225 // Royal Blue
// 70-101-25 // Delta
int rOffset = Math.Max(firstColour.R, secondColour.R);
int gOffset = Math.Max(firstColour.G, secondColour.G);
int bOffset = Math.Max(firstColour.B, secondColour.B);
int deltaR = Math.Abs(firstColour.R - secondColour.R);
int deltaG = Math.Abs(firstColour.G - secondColour.G);
int deltaB = Math.Abs(firstColour.B - secondColour.B);
double val = (value - min) / (max - min);
int r = rOffset - Convert.ToByte(deltaR * (1 - val));
int g = gOffset - Convert.ToByte(deltaG * (1 - val));
int b = bOffset - Convert.ToByte(deltaB * (1 - val));
return Color.FromArgb(255, r, g, b);
}
Agradeço antecipadamente!