回答 (3 件)

Kelly Kearney
Kelly Kearney 2013 年 6 月 20 日

2 投票

The easiest way to do this is to interpolate your data to a higher resolution using an interpolation scheme that will result in smoother transitions between points, such as a spline.
[x,y,z] = peaks(10);
[xnew, ynew] = meshgrid(linspace(-3,3,100));
znew = interp2(x,y,z,xnew,ynew, 'spline');
subplot(2,1,1);
hold on;
scatter(x(:), y(:), [], z(:), 'filled');
contour(x,y,z, -6:7);
subplot(2,1,2);
hold on;
scatter(x(:), y(:), [], z(:), 'filled');
contour(xnew, ynew, znew, -6:7);
Be careful with this, though, since it might introduce some artifacts. Even though it may not be as visually pleasing, the low-res, less-smooth version is a more accurate depiction of the underlying data.

1 件のコメント

Konstantin
Konstantin 2017 年 4 月 3 日
Thanks. Very useful example.

サインインしてコメントする。

Andrew Reibold
Andrew Reibold 2013 年 6 月 14 日

0 投票

Is it something you can try "binning"?

1 件のコメント

Sandy
Sandy 2013 年 6 月 17 日
編集済み: Sandy 2013 年 6 月 17 日
Well the data has already been binned (hist3()).

サインインしてコメントする。

Image Analyst
Image Analyst 2013 年 6 月 20 日

0 投票

Please post an image or screenshot. For example, one way could be to blur your image with conv2() or imfilter() before you call contour().

カテゴリ

ヘルプ センター および File Exchange で Contour Plots についてさらに検索

質問済み:

2013 年 6 月 14 日

コメント済み:

2017 年 4 月 3 日

Community Treasure Hunt

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

Start Hunting!

Translated by