如何创建轮廓图?

时间:2019-01-21 13:59:10

标签: matlab

如何以日期(x轴),时间(y轴)和z值作为随x和y变化的变量绘制轮廓图?我也附加了我的数据和我正在使用的代码。但是我在NaN值周围没有得到平滑的曲线。任何人都可以在代码中帮助我。

fid=fopen('D:\NSSS_2019\INSAT_3D.csv');
for i=1
  tline=fgets(fid);
  end
data=textscan(fid,'%s %s %f %f %f %f %f %f %f %f','Delimiter',',');

x=data{1,1};  y=data{1,2}; z=data{1,10};

day={};

for i=1:length(x)

p=x(i); p=char(p); m=y(i); m=char(m);
len=length(m);

if len<5
   n=strcat('0',m);
else
   n=m; 
end

d=strcat(p,n);
day{i}=d;
 end

day=day';
day1=datenum(day,'dd');


newStr = strrep(y,':','.');
time1=[];
for k=1:length(newStr)
aa=newStr(k);
new=str2num(char(aa));
time1(k)=new;
end
time1=time1';
% Grid 
x0 = min(day1) ; x1 = max(day1) ;
y0 = min(time1) ; y1 = max(time1) ;
N = 1488 ;
xl = linspace(x0,x1,N) ; 
yl = linspace(y0,y1,N) ; 
[X,Y] = meshgrid(xl,yl) ;
%% do inteprolation 
P = [day1,time1] ; V = z ;
F = TriScatteredInterp(P,V) ;
F.Method = 'natural';

pq = [X(:),Y(:)] ; 
 vq = F(pq) ;
Z = vq ;
Z = reshape(Z,size(X)) ;
contourf(X,Y,Z) ;
datetick('x','dd');
hcb=colorbar

data csv file

2 个答案:

答案 0 :(得分:0)

您可以使用cftool进行绘图。唯一的要求是参数和函数的图像。然后,您可以将所有内容导出到工作区

答案 1 :(得分:0)

这需要重塑数据并使用<Path>/<generatedName>.pdf

shading flat