2017-07-30 28 views
1

MatlabのマップオーバーレイをRGBテクスチャのあるsurfaceで視覚化します。それは次のようになります。Matlabプロットの凡例にカラーバーを配置する方法

matlab

私はこれはどの層を明確にし、より良い伝説のアイコンを持っていると思います。

Gimp

私はGimpの第二1をやっている間、私はコードでそれを持ってしたいと思います:このような何か。

可能ですか? Matlab File Exchangeなどから何かを使用しても問題ありません。

+0

この図ではどのカラーマップを使用していますか?それは '灰色'と 'ジェット'の組み合わせのようです。 – EBH

+0

これらは '表面'(上のものは 'AlphaData')であり、' Z'はゼロで、 'C'はジェットから' ind2rgb'で生成するRGBデータです。 – Laurenz

+0

あなたはこれをあなたの答えの中でより明確に書けますか?私はあなたがここで何種類の変数を記述しているのかよくわかりません。また、上の図の「Radar Reprojection」アイコンが暗い赤い四角形のように見えるのはなぜですか? – EBH

答えて

1

Figureを作成した後で、凡例のこの部分を手動で '描画'することもできます。ここでは、この操作を行うことができる方法である:ここでは

plot(nan(2)) % this is to make space in the legend box 
hold on 
plot(rand(15,1),'r') % here you plot all your data 
hold off 
hleg = legend({'Lidar Map','Radar Reprojection','Robot Path'}); 
% get the position of the legend, and calculate the place for the colormaps: 
        % this values may need to be adjusted 
pos = hleg.Position.*[1.01 1+hleg.Position(4)/2.3 0.27 0.6]; 
% Create a 'picture' of what you want to appear in the legend: 
level = 64; % level of color in the colormaps 
cb = [1:level; zeros(1,level); (1:level)+level]; 
cmap = [1 1 1;0 0 0;flipud(gray(level-1)); jet(level)]; % custom colormap 
legax = axes('Position',pos); % place the new picture above the legend 
imagesc(legax,repelem(cb,[3 1 3],1)) % Create the picture 
colormap(cmap) % appy custom colormap 
axis off % remove all axes details 

は結果である:

enter image description here

ここでの問題は、伝説のカスタムカラーマップは、データのカラーマップを妨げるかもしれないということですそれ自体を扱う必要があるかもしれませんが、データがどのように見えるか、現在どのようにカラーマップを適用しているかわからないと、どのように伝えることができません。

+0

これは素晴らしい作品です:)私は 'cmap = [hleg.Color; bgcolor; ... cmap = [1 1 1; 0 0 0; ... '私は' hleg.Color = 'white'; 'を持つことができ、' bgcolor'として泥だらけの緑色を保つことができます – Laurenz

+0

素晴らしい!聞いてよかった:)あなたを助けてくれてうれしい。 – EBH

関連する問題