0

2 つの pcolor を重ねてプロットしています (m_map アルゴリズム m_pcolor を使用)。これは、2 番目の pcolor に透明度があり、その下に pcolor が表示されるためです。最初のプロットは 1 と 0 だけで構成されており、白黒だけにしたいと思います。2番目にカラーマップジェットを使用したいのですが、一方のカラーマップを変更せずにもう一方のカラーマップを設定する方法がわかりません。現時点での私のコードは次のとおりです。

h1 = m_pcolor(Lon', Lat', black_background);
hold on; 
h = m_pcolor(Lon', Lat', input_matrix);

前もって感謝します、アダム

4

1 に答える 1

1

この限定されたアプリケーションの場合、おそらく最も簡単な方法は、ゼロの行をカラーマップに追加し、スケーリング (climプロパティ) を自分で処理して、各プロットがカラーマップの適切な部分を利用することです。

cm=colormap('jet'); %# Nx3
cm = [cm; 0 0 0]; %# append black row: (N+1)x3

h1 = m_pcolor(Lon',Lat',black_background);
set(h1,'clim',[length(colormap),length(colormap)])

hold on
h2 = m_pcolor(Lon', Lat', input_matrix);
set(h2,'clim',[length(colormap)-1, length(colormap)-1])

これはあなたを近づけるはずですが、私は自分の matlab マシンを使用していないため、テストしていません。

別のオプションは、ファイル交換からのfreezeColorsです (ただし、これは同じ Figure ウィンドウ内の異なる軸に対してのみ機能する可能性があります。同じ軸オブジェクト内の異なるプロットについてはわかりません)。

于 2012-06-27T15:41:28.843 に答える