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 Kommentare

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

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Mathieu NOE
Mathieu NOE am 23 Mär. 2022

2 Stimmen

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 Kommentare

Subhodh Sharma
Subhodh Sharma am 24 Mär. 2022
@Mathieu NOE thanks man. It worked like wonder.
Mathieu NOE
Mathieu NOE am 24 Mär. 2022
My pleasure !

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Contour Plots finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by