私は、2つのカテゴリからいくつかの2次元確率質量関数を持っています。私はそれらを視覚化するために輪郭をプロットしようとしています(例えば、半分の高さではありますが、実際には問題はありません)。1つのレベルを持つ複数のMATLAB等高線プロット
塗りの色と不透明度を制御したいので、私は直接プロットするのにcontourf
を使いたくありません。だから、contourc
を使ってxy座標を生成し、次にfill
をこれらのxy座標で使用しています。
contourc
関数のxy座標には、次の奇妙な頂点がプロットされる原因となる奇妙な数が含まれているという問題があります。まず
私はそれが奇妙contourmatrix形式だと思ったが、私は唯一contourc
から一つの値を求めていて、それがこれですとは思いません。私は唯一の輪郭を求めていたときにcontourmatrix
がそれらでこれらの奇妙な値を持っている理由はたとえば...
contourmatrix = contourc(x, y, Z, [val, val]);
h = fill(contourmatrix(1,:), contourmatrix(2,:), 'r');
は誰でも知っていますか?
UPDATE:
私の問題は、入力された2D行列は「スムーズ」ではないときcontourc
の故障モードであるかもしれないようです。ソースデータは(x、y)点の大きな集合です。次に、hist2d関数を使って2D行列を作成します。しかし、ときに、この問題は誇張されている...
うるさいですが、私はよりスムーズな2D機能をもたらすように、2Dカーネル密度関数を使用する場合、問題が軽減されています...
フルプロセスは、A)I配布 Bからのサンプルを形成する(x、y)の点の集合を持っている)Iが2D PMF Cにこれを変換)contourc
Dを使用してcontourmatrixを作成 ある)プロットfill
あなたがサンプルデータと情報を追加するための – Hoki
感謝を簡略化した例を提供してもらえますが、それは本当に私たちがいる限り、我々がそうであるように手助けすることはできません。問題を再現するのに必要なデータがありません。そのため、どこかの場所(Googleドライブ/ Dropboxなど)にデータセットをアップロードしたり、リンクを共有したり、Figureを作成するためのコードを表示したり、サンプルデータを簡単に作成して簡単に作成できます。いずれにしても、何がうまくいかないかを知るためにはコードを参照する必要があります。 – Hoki
あなたの寄生線はアンカーポイントから来ていると思われます。 'ContourMatrix'構造を注意深く見てください。いくつかの点は座標ではなく、与えられたプロファイルに対して考慮すべき点のレベルと数を示しています。これらの点は 'fill'コマンドに含めてはなりません。ですから、 'contourmatrix(1、:)'をfill関数に送ることによって、余分なポイントを送ります。輪郭によって1つの形状しか定義されていない場合は、少なくとも 'contourmatrix(1,2:end)'(最初の列を送らないでください)を使用する必要があります。 isolevelに複数の図形がある場合、輪郭行列を解析する必要があります。 – Hoki