If this is the only one figure you need to digitize, I would suggest to do it manually.
What would be an algorithm, if you wrote this program using Python.
1) Read the figure using
sickit-image
or
PIL
, and clasterize colors (find all different colors that
are used); Probably, you'll need make some rotation adjustment of the picture first.
2) Find centers for the clusters with the same color and build a matrix of colors A[i,j] (i num of row, j num of column in the chart);
3) map colors to names, column names and row names respectively; this probably is to be done manually, e.g. {'color': 'row_name1', ...etc}
4) The only last step is to define mapping between row/column number and name. That's all.
I suspect that it take no more than 20 minutes to digitize the chart manually.