如何在Matlab中绘制多维数组?

时间:2018-09-19 04:44:12

标签: matlab colormap

我有一张桌子,如下表

system:index 2017_06_18 2017_06_19 2017_06_20 2017_06_21 2 612.8099664 1174.656713 1282.083251 815.3828357 3 766.4103726 1345.135952 1322.726083 749.998993 4 765.0230453 1411.669136 1350.437586 610.9541838 5 553.5858458 1374.14789 1152.086957 566.7924468 6 466.9780908 1311.903756 1060.494001 559.1982264 7 257.1162602 1270.182385 988.5455285 562.9224932 8 230.6611542 1310.971988 1001.548768 502.3266959

我想绘制一个2d色图,表示system:index为y轴,日期为x轴,日期下的值为颜色。我尝试使用以下代码,但没有给出我想要的。

  clear
  clc
  filename = 'TurbidityDailyMean.xlsx';
  data = xlsread(filename,'TurbidityDailyMean','A1:E8');

  figure;
  hold on

  for i = 2:5
     y = data(:,1);
     x = data(:,i);
   plot(x,y) 
  end

我需要如上所述映射一个颜色图。但是从我的尝试来看,它还提供了其他东西。另一个事实是,我无法将具有相关数据的system:index和date行插入到matlab中。

1 个答案:

答案 0 :(得分:0)

感谢上司卡文达博士,enter image description here我从他那里采用的解决方案如下

data1 = csvread('TurbidityDailyMean.csv',1,1);
[mm,nn]=size(data1)
xx=ones(mm,nn);
yy=ones(mm,nn);
for j=1:nn
        xx(:,j)=j;
end
for i=1:mm
        yy(i,:)=i;
end
zz=data1;


h1=pcolor(xx,yy,zz);
shading flat 
set(gcf,'color',[1,1,1])
axis([1 5 1 7]);

jet2=jet;
jet2(1,:)=1.0;
colormap(jet2)
caxis([0.0 0.13])

hold on
xlabel('Julian Day');
ylabel('y (?~1 km)');
colorb=colorbar;
set(get(colorb,'ylabel'),'String','Normalized Red Band Reflectance','fontsize',15, 
'color', 'k');
set(get(colorb,'xlabel'),'fontsize',20, 'color', 'k');
grid on