我的代码中的颜色图函数应为3个子图提供3种不同的颜色图。自去年以来,我一直在使用polarmap
颜色图来显示多普勒曲线。我刚刚发现它不再起作用了!现在,所有三个子图都在同一个颜色图中,这是第一个:“热”。
注意:最近我从2017年更新了我的MATLAB,直到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;
答案 0 :(得分:1)
您的代码存在以下问题:
colormap gray
请注意,在前两个轴中,您使用轴手柄来设置颜色图,例如
colormap (sx2, flipud(polarmap(1024)))
来自documentation of colormap
(重点是我):
colormap map
将当前图的颜色图设置为预定义的颜色图之一。如果为图形设置了颜色图,则图形中的轴和图表将使用相同的颜色图。
修复很容易,只需使用与其他情况相同的语法即可:
colormap(sx3, gray);
其他一些注意事项:
如果要最大限度地发挥身材,请
f2 = figure('WindowState', 'maximized');
在已经具有轴手柄(ax = gca
)的情况下,无需执行sx1...3
。