Plot 10100X3 matrix as a pixel plot.

10 vues (au cours des 30 derniers jours)
santiago canete
santiago canete le 21 Déc 2017
Commenté : Walter Roberson le 22 Déc 2017
I have a dataset called matrix of size 10100X3. matrix(1) and matrix(2) are the x y coordinates respectively and the matrix(3) value determines the color of the pixel. This format is not working with the image() function. Any ideas on how I can make this work?
fileID1 = fopen('flipmatrix1.txt');
matrixx = fscanf(fileID1, '%f',[3,inf]);
matrixx = matrixx';
fclose(fileID1);
fileID2 = fopen('flipmatrix2.txt');
matrixy = fscanf(fileID2, '%f',[3,inf]);
matrixy = matrixy';
fclose(fileID2);
matrix = [matrixx; matrixy];
qA = matrix(:,1);
qB = matrix(:,2);
time = matrix(:,3);
image( qA, qB, time);
colorbar;
  6 commentaires
the cyclist
the cyclist le 21 Déc 2017

You are missing my basic point. When I said you should upload representative data, I meant that you should post a sample that should give a result with similar characteristics to what you expect. With the data and the code you shared, I get a plot that looks like this ...

This is exactly the image that I would expect from such data. So, it is not illustrating the problem you are having. We still need more information to help you.

santiago canete
santiago canete le 21 Déc 2017
These are the two txt files that this code is using.

Connectez-vous pour commenter.

Réponse acceptée

Walter Roberson
Walter Roberson le 21 Déc 2017
imagesc(reshape(time, 101, 100));
After that you need to set your colormap() . Your current color values, stored in time, are scalar values in the range -4 to +30, rather than being RGB values, so to get black at the center and yellow outside you are going to need to use a colormap.
  2 commentaires
santiago canete
santiago canete le 21 Déc 2017
Thanks a lot!!
Walter Roberson
Walter Roberson le 22 Déc 2017
If this problem is solved, please Accept the answer.
I used scatter() to verify that the points were close to being on a grid, and plot() to verify that the progression was regular rather than in random order; after that it was a matter of finding the right reshape() to use. There is a possibility that your points are not exactly on the grid: if that is important then you will need to either griddata() or use surface() or patch() with texture mapping.
Getting a good colormap appears to be the major challenge.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Data Distribution Plots dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by