Невозможно установить другую цветовую карту для каждого подзаголовка

Функция цветовой карты в моем коде должна давать 3 разных цветовых карты для 3 подзаговоров. Я использую цветовую карту polarmap с прошлого года, чтобы показать профиль Доплера. Я только что обнаружил, что он больше не работает! Все три подсюжета теперь имеют одну цветовую карту, которая является первой: «горячая».

Примечание: недавно я обновил свой MATLAB с 2017 по 2018 год. Я не уверен, может ли это вызвать такую ​​ошибку.

Ниже мой код:

% Intensity, Doppler, Line width
f2 = figure();
set(f2,'position', [0, 0, screenX, screenY])

sx1 = subplot(1,3,1);
imagesc(x,t,(meanxytint'))
set(gca,'YDir','normal')
colormap hot
colorbar
caxis([0 5000])

xlabel('Solar X','FontSize',14,'FontWeight','bold')
ylabel('Solar Y','FontSize',14,'FontWeight','bold')
title('Intensity (DN)', 'FontSize', 16);
ax = gca;
ax.XAxis.FontSize = 12;
ax.YAxis.FontSize = 12;

sx2 = subplot(1,3,2);
imagesc(x,t,meanxytdop')
set(gca,'YDir','normal')
colormap (sx2, flipud(polarmap(1024)))
colorbar
caxis([-100 100])

xlabel('Solar X','FontSize',14,'FontWeight','bold')
ylabel('Solar Y','FontSize',14,'FontWeight','bold')
title('Doppler Profile (km/s)', 'FontSize', 16);
ax = gca;
ax.XAxis.FontSize = 12;
ax.YAxis.FontSize = 12;

sx3 = subplot(1,3,3);
imagesc(x,t,meanxytwid')
set(gca,'YDir','normal')
colormap gray
colorbar
caxis([0 150])

xlabel('Solar X','FontSize',14,'FontWeight','bold')
ylabel('Solar Y','FontSize',14,'FontWeight','bold')
title('Non-thermal Cont. (km/s)', 'FontSize', 16);
ax = gca;
ax.XAxis.FontSize = 12;
ax.YAxis.FontSize = 12;

Можете ли вы добавить фиктивные данные для предоставления минимальный воспроизводимый пример? Кроме того, вы говорите, что этого не было в 2017 году, а в 2018 году?

Ander Biguri 10.08.2018 14:29
2
1
373
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема с вашим кодом заключается в этой строке:

colormap gray

Обратите внимание, что в первых двух осях вы используете дескриптор осей для установки цветовой карты, например

colormap (sx2, flipud(polarmap(1024)))

Из документация colormap (выделено мной):

colormap map sets the colormap for the current figure to one of the predefined colormaps. If you set the colormap for the figure, then axes and charts in the figure use the same colormap.

Исправить несложно, просто используйте тот же синтаксис, что и в других случаях:

colormap(sx3, gray);

Некоторые другие примечания:

  • Если вы хотите увеличить свою фигуру, сделайте

    f2 = figure('WindowState', 'maximized');
    
  • Нет необходимости делать ax = gca, когда у вас уже есть рукоятка осей (sx1...3).

Другие вопросы по теме