2016-05-13 1 views
0

Я полностью застрял!Matlab: 2 непрерывных цветных и цветовых палитры на одном рисунке

Может ли кто-нибудь дать мне руку с этой проблемой? Заранее спасибо.

  1. То, что я хотел: я хочу, чтобы построить сеть мозга таким образом, что узлы имеют свои собственные палитры (реактивную) и Colorbar и, в том же рисунке, связи с их собственной палитрой (серый) и Colorbar.

  2. Проблема: когда я отображаю на экране голову с двумя цветными панелями из двух разных цветовых палитр, оба цветных дисплея отображаются с первым объявленным цветом (струей) в моем коде. Другими словами, кажется, что первый объявленный colormap (jet) перезаписывает последние объявленные цветовые коды (серый). На отображаемом рисунке показана первая цветовая палитра (jet) и никогда не отображается отдельный цветной серый цвет !!!

  3. Что я наделал? Я придерживался так много ссылок на этих форумах, и математика помогает построить собственный скрипт. Я наивна в Matlab, и я использую его в macOS с версией R2013a для Matlab. Код выглядит так:

    Figure 
    hold 
    plot1 with data1 associated to colormap(gray) 
    plot2 with data2 associated to colormap(jet) 
    
    axis square 
    axis off 
    box off 
    set(gca,'XTick',[],'YTick',[]) 
    set(gcf, 'units','normalized','outerposition',[0 0 1 1]) %EXPANDING FIGURE ON SCREEN 
    
    ax1 = gca; %GETTING THE AXES OF THE FORMER FIGURE 
    ax1p = get(ax1,'Position'); 
    
    colormap(ax1,'jet') %colorbar for nodes 
    cb1 = colorbar('west'); 
    set(cb1, 'Position', [ax1p(1)+ax1p(3)-0.17 ax1p(2)+0.17 0.03   ax1p(2)+ax1p(3)-.3]) 
    set(cb1, 'fontsize', 30); 
    caxis([min(n_atribut) max(n_atribut)]); 
    
    ax2 = axes;  %getting axes for second colorbar 
    set(ax2, 'Position', ax1p);  % Co-locate ax2 atop ax1 
    ax2p = get(ax2, 'Position'); 
    axis off;      % Make ax2 invisible 
    linkaxes([ax1,ax2],'xy');  % Link ax1 and ax2 so zooming will work properly: 
    
    colormap(ax2,'gray') %colorbar for links 
    cb2 = colorbar('west'); % Create a new colorbar 
    set(cb2, 'Position', [ax2p(1)+ax2p(2)+0.6 ax2p(2)+0.17 0.03   ax2p(2)+ax2p(3)-.3]) 
    set(cb2, 'fontsize', 30); 
    caxis([min(w_atribut) max(w_atribut)]); 
    axes(ax2); 
    hold off 
    
  4. Цифры. На рисунке ниже показана проблема, и это то, что я получаю, когда запускаю свой код. enter image description here Как вы можете видеть, даже если обе цветные панели имеют свои собственные ограничения, связанные с данными1 и данными2, второй (один справа) нанесенный с помощью колормовой струи. На следующем рисунке показано, что я ищу: enter image description here Очевидно, что этот был отредактирован в другом программном обеспечении, чтобы получить цветной серый цвет второго цветного бара.

Сказав это, может ли кто-нибудь мне помочь? Если это важно, я могу отправить полный код и 4 файла для запуска и получить неправильную цифру! Спасибо заранее, что я ценю все ваши помощь. Gohann.

ответ

2

Возможно, вы ищете функцию freezecolor.

+0

Thanks Ratbert, ваша ссылка была очень полезной. – Gohann

1

Наконец-то я получил свой ответ из-за комментария Ратберта и работ многих парней из обмена файлами Matlab®. Благодарны за скрипты freezeColors.m и cbfreeze.m и double2rgb.m от Джона Инверсена и Дэвида Легланда Карлоса Адриана Варгаса. Как я решил проблему.

% % % % NODOS 
cm1 = colormap(jet); 
cb1 = colorbar('Location', 'east', 'fontsize', 30); 
caxis([min(n_atribut(n_atribut>0)) max(n_atribut)]) 
cbfreeze(cm1) 
freezeColors(ax1) 
% % % % LINKS 
cm2 = colormap(bone); 
cm2 = flipud(cm2); 
colormap(cm2); 
cb2 = colorbar('Location', 'west', 'fontsize', 30); 
caxis([min(w_atribut) max(w_atribut)]) 
cbfreeze(cm2) 
freezeColors 

Функция/ToolKit Easy Plot EEG Brain Network теперь доступен в GitHub и Matlab файлообменник. [email protected] FileExchange GitHub Reposiroty Спасибо всем.

Смежные вопросы