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 commentaires

DGM
DGM le 23 Mar 2022
That blockiness is in the data itself -- or at least the data that's attached.
Subhodh Sharma
Subhodh Sharma le 23 Mar 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 le 23 Mar 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 le 23 Mar 2022
@@Adam Danz thanks. Tried with levels but not much improvement I observed.
Subhodh Sharma
Subhodh Sharma le 23 Mar 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.

Connectez-vous pour commenter.

 Réponse acceptée

Mathieu NOE
Mathieu NOE le 23 Mar 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 commentaires

Subhodh Sharma
Subhodh Sharma le 24 Mar 2022
@Mathieu NOE thanks man. It worked like wonder.
Mathieu NOE
Mathieu NOE le 24 Mar 2022
My pleasure !

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Contour Plots dans Centre d'aide et File Exchange

Produits

Version

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by