2016-10-07 9 views
0
MATLAB

Для следующего кода MatLab:Два ColorBars для осей

figure;imshow(imread('cameraman.tif') ,[]) 
hold on;scatter(1:200,1:200,[],1:200);colorbar 

Как мы можем видеть, цвет разброса серый, потому что Colorbar из «cameraman.tif» серый цвет. Что, если я хочу, чтобы цветная панель разброса была jet или hsv? Я ищу некоторую информацию из сети, и я обнаружил, что одна ось имеет только один цветной барабан.

Итак, мой вопрос заключается в том, как установить цветную панель scatter на jet и оставить цветную панель «cameraman.tif» серым?

ZhQ

+0

взглянуть [здесь] (HTTP : //stackoverflow.com/a/39741044/2627163) и [здесь] (http://stackoverflow.com/a/38233971/2627163) – EBH

+0

(1) Существует только одна цветовая палитра на 'фигуру', а не' оси. (2) В вашем коде разброс не может быть замечен вообще. (3) Вы хотите показать обе оси с помощью двух разных колонок? – EBH

ответ

1

Проблема появляется в scatter. Посмотрите на here, чтобы узнать, как вы можете определить цвета для scatter. Я изменил свой код:

figure; 
imshow(imread('cameraman.tif'),[]) 
hold on 
scatter(1:200,1:200,[],jet(200)) % this is what I changed 
colorbar 

и теперь он выглядит отлично:

enter image description here

+0

Что делать, если я хочу назначить интенсивность точек рассеяния на 1: 200? И я хочу, чтобы colorbar представлял цветовую карту точек разброса, а не изображение. Что я могу сделать? –

+0

, тогда вы формируете свой 'jetmat = jet (200);' поэтому вы можете использовать свой масштаб, как 'jetmat ((1: 200), :)'. Точки разброса не имеют * colormap *. Нет простого способа сделать это. – erfan