I tell you a little about what my problem is about, I have a very large 3000x16 matrix, as you can imagine each column is 3000x1. I want to make the scatter diagram of one of the columns, called mos, against another 11, that is, 11 scatter diagrams. I want the points of each scatter diagram to be painted according to a third variable stored in another of the columns, called distortions. The distortions column follows the following logic: it has five 1's, five 2's, ..., up to five 24's and it starts again with five 1's, and it continues, ... As it is a 3000x1 column, it does this 25 times.
distortions = [ 1 1 1 1 1 2 2 2 2 2 ... 24 24 24 24 24]
Thus, to each of the elements of the other columns, the distortion that is in the same position corresponds to it, for example, all the elements of row 7 correspond to the distortion 2. I want this to be reflected in colors in the scatter plot, I'm going to need 24 colors.
The following code is not working:
for metric in ['MSE', 'RMSE', 'PSNR', 'SNR', 'WSNR', 'UQI', 'PBVIF',
'NQM', 'SSIM', 'MSSIM', 'Indice CQ(1,1)']:
plt.scatter(value[metric], mos, c = distortions)
plt.title(metric + ' vs MOS')
plt.ylabel('MOS')
plt.xlabel(metric)
plt.grid(True)
plt.tight_layout()
plt.show()
plt.clf()
(Note: 'MSE', 'RMSE', ... are the names of the 11 columns that I want to plot against the mos column, they are all stored in a dictionary called value)
The parameter that puts the colors is:
c = distortions
in the third line, but when I run the Script it makes graphics with very few colors, so obviously it's wrong, since they should be 24 colors.
What am I doing wrong?
Thank you very much for your help.
Lucia