о построении двух изображений в псевдоцветных фигурах

Я использую Matlab для визуализации своих данных в псевдоцветных фигурах (pcolor). Это работает очень хорошо, чтобы показать данные в pcolor, но теперь я получаю еще один набор данных. Если я рисую каждый набор данных на отдельном графике pcolor, все в порядке. Но теперь я объединяю два данных так, что

NEW_DATA = [OLDDATA1, OLDATA2]

если вместо этого я раскрашиваю NEW_DATA, цвет искажается. Могу ли я каким-либо образом показать объединенные данные, не теряя деталей или информации о цвете. В моем случае, если вы рисуете pcolor(NEW_DATA), общая форма сохраняется (как и [pcolor(OLDDATA1), pcolor(OLDATA2)]), но некоторые детали становятся нечеткими.


person user1285419    schedule 27.06.2012    source источник


Ответы (1)


На графиках pcolor цвета вершин масштабируются в соответствии с цветовой картой. Вы можете установить масштабирование, используя свойство 'clim' осей. Я предполагаю, что здесь происходит то, что масштабирование отличается между двумя OLDDATA и объединенным NEWDATA.

В конечном итоге вам нужно решить, какое масштабирование использовать; если вам нравится оригинал от OLDDATA1, вы можете сделать следующее:

pcolor(OLDDATA1);
orig_clim = get(gca,'clim'); %# just to get the color limits

pcolor(NEWDATA);
set(gca, 'clim', orig_clim);

Если вам нравится исходное масштабирование обоих OLDDATA графиков, но не существует масштабирования, подходящего для обоих, вы можете вручную создать фигуру с двумя осями, расположенными рядом друг с другом (вместо того, чтобы полагаться на subplot) . Таким образом, каждый объект осей может иметь свой собственный clim, но два графика будут казаться смежными.

figure;
h1 = axes('units','normalized','position',[.05 .05 .45 .45]);
h2 = axes('units','normalized','position',[.5  .05 .45 .45]);
pcolor(h1, OLDDATA1);
pcolor(h2, OLDDATA2);
set(h2, 'ytick', []); %# turn off ytick (if it was on)
person tmpearce    schedule 27.06.2012