Show a discrete color bar in a contourf plot with vector defined contours
23 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello, I have a difficulties with the colorbar of a contourf plot. I want to have it a maximum of five colors. Sometimes the matrix does not use all of those colors, because the contours depend on avg. and sd. The contourf does not give me problems, but the colorbar does. If I just activate the colorbar, it shows a gradient that I don't want, like in the first image. I changed the colors interactively.
I have a vector v that defines the contours, with values [avg-3sd avg-2sd avg+2sd avg+3sd]. I want everything between avg-2sd and avg+2sd to be white, and the other possible ranges to be filled with solid colors, so I just wrote:
contourf(matrixtoplot,v,'edgecolor','black');
For previous plots, setting the colormap to the corresponding discrete value, and playing with caxis, gave me good results, but it seems that I was lucky, because I can't manage to reproduce that result with other matrices, given that the values of the color boundaries are not evenly distributed. I've tried a lot of options with caxis, unsuccessfully. The following is an example of what I want, with the relevant piece of code:
contourf(othermatrix,otherv,'edgecolor','black');
cb1 = colorbar(ax1);
cb1=colormap(jet(4))
caxis([0 0.2])
ax1=gca;
My strategy was to plot with "full" jet colormap, and the constrain it to the number N of colors used (jet(N)) and adjusting the limits of the color bar. Again, this strategy is not working for every case.
0 Kommentare
Antworten (1)
Cris LaPierre
am 17 Dez. 2018
I don't have any cases to test. Could you attach a dataset where it is not working? I slightly modified your code, and it works for the test data.
Z = peaks;
contourf(Z)
colormap(jet(4))
colorbar
0 Kommentare
Siehe auch
Kategorien
Mehr zu Colormaps finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!