Example: Heatmap from Color array

A 5 by 10 array of Color objects is created by linearly interpolating red along the x-axis, blue along the y-axis and mixing in a random amount of green. The data range is set to [0,10] by [0,1].
using Imsl.Chart2D;
using System;
using System.Windows.Forms;

public class HeatmapEx1 : FrameChart 
{
	public HeatmapEx1() 
	{
		Chart chart = this.Chart;

		AxisXY axis = new AxisXY(chart);
		
		double xmin = 0.0;
		double xmax = 10.0;
		double ymin = 0.0;
		double ymax = 1.0;
		
		int nxRed = 5;
		int nyBlue = 10;
		
		System.Random random = new System.Random((System.Int32) 123457L);
		System.Drawing.Color[,] color = new System.Drawing.Color[nxRed,nyBlue];

		int z=0;
		int []d=new int[50];
		d[0]=34;
		d[1]=212;
		d[2]=122;
		d[3]=86;
		d[4]=165;
		d[5]=62;
		d[6]=195;
		d[7]=161;
		d[8]=103;
		d[9]=155;
		d[10]=104;
		d[11]=163;
		d[12]=217;
		d[13]=252;
		d[14]=13;
		d[15]=97;
		d[16]=104;
		d[17]=74;
		d[18]=65;
		d[19]=248;
		d[20]=189;
		d[21]=195;
		d[22]=105;
		d[23]=191;
		d[24]=237;
		d[25]=28;
		d[26]=234;
		d[27]=67;
		d[28]=172;
		d[29]=146;
		d[30]=129;
		d[31]=2;
		d[32]=228;
		d[33]=162;
		d[34]=235;
		d[35]=177;
		d[36]=109;
		d[37]=251;
		d[38]=215;
		d[39]=243;
		d[40]=106;
		d[41]=154;
		d[42]=22;
		d[43]=65;
		d[44]=101;
		d[45]=192;
		d[46]=103;
		d[47]=28;
		d[48]=32;
		d[49]=143;

		for (int i = 0; i < nxRed; i++)
		{
			for (int j = 0; j < nyBlue; j++)
			{
				int r = (int) (255.0 * i / nxRed);
				//	
				int g =d[z];
				z++;
				
				int b = (int) (255.0 * j / nyBlue);
				color[i,j] = System.Drawing.Color.FromArgb(r, g, b);
			}
		}
		Heatmap heatmap = new Heatmap(axis, xmin, xmax, ymin, ymax, color);
		axis.AxisX.AxisTitle.SetTitle("Red");
		axis.AxisY.AxisTitle.SetTitle("Blue");
	}

	public static void Main(string[] argv) 
	{
		System.Windows.Forms.Application.Run(new HeatmapEx1());
	}
}

Output

Link to C# source.