How to smooth this contourf plot?

Hello everyone,
I want to plot smooth contour filled data with the given data. I have tried this code.
h1=contourf(X1,X2,DATA1,'edgecolor','none');
shading interp;
with this I am getting this plot. But I want a smooth plot. I would really appreciate your help. Thanks in advance.

7 comentarios

DGM
DGM el 23 de Mzo. de 2022
That blockiness is in the data itself -- or at least the data that's attached.
Subhodh Sharma
Subhodh Sharma el 23 de Mzo. de 2022
@DGM the blockiness is in the data itself (that's the main reason as I see). I was trying to increase the points using interp2 method. But not much improvement I observe on the contour plot. Looking forward to your suggestions.
Adam Danz
Adam Danz el 23 de Mzo. de 2022
Have you tried increasing the number of levels in contourf(___,levels) ?
If it is appropriate you could try some simple smoothing filtering:
h1=contourf(X1,X2,imfilter(ans,conv2(ones(3)/3^3,ones(5)/5^2,'full')),'edgecolor','none');
But if that is appropriate is for you to decide - for this simple case the northeastern part of India gets cut-off due to the width of the filter-kernel compared to how many pixels worth of data you have finite data in that region.
Subhodh Sharma
Subhodh Sharma el 23 de Mzo. de 2022
@@Adam Danz thanks. Tried with levels but not much improvement I observed.
Subhodh Sharma
Subhodh Sharma el 23 de Mzo. de 2022
@Bjorn Gustavsson I am not familiar witb filtering. But we can use filtering if it solves the issue. only thing is that I need to show all portion of Indian region without cut-offs of any region.
thanks for your response. looking forward to your inputs.
The underlying problem might be the data you have in DATA1, if I simply do:
imagesc(DATA1)
and zoom in on the Kashmir(?) region it looks very peculiar, some kind of mixture between rasterized data and interpolated data on varying spatial resolution. The answer by Mathieu below looks nice to my eyes, if they are a suitable presentation of the data is for you to judge.

Iniciar sesión para comentar.

 Respuesta aceptada

Mathieu NOE
Mathieu NOE el 23 de Mzo. de 2022
hello
with this FEx submission, you should be happy now
DATA2 = smooth2a(DATA1,10,10); % adapt the smoothing amount to your needs...
figure(2)
h2=contourf(X1,X2,DATA2,'edgecolor','none');
results

2 comentarios

Subhodh Sharma
Subhodh Sharma el 24 de Mzo. de 2022
@Mathieu NOE thanks man. It worked like wonder.
Mathieu NOE
Mathieu NOE el 24 de Mzo. de 2022
My pleasure !

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Contour Plots en Centro de ayuda y File Exchange.

Productos

Versión

R2017b

Preguntada:

el 23 de Mzo. de 2022

Comentada:

el 24 de Mzo. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by