【问题标题】:How to create a contour plot?如何创建等高线图?
【发布时间】:2019-01-21 13:59:10
【问题描述】:

如何制作关于日期(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

【问题讨论】:

    标签: matlab


    【解决方案1】:

    您可以使用 cftool 进行绘图。唯一的要求是函数的参数和图像。然后就可以全部导出到工作区了

    【讨论】:

      【解决方案2】:

      它需要对数据进行整形并使用shading flat

      Z=reshape(Z,size(X));
      Contoured(X,Y,Z);
      shading flat
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-22
        • 1970-01-01
        • 2021-04-03
        • 2014-07-24
        • 1970-01-01
        相关资源
        最近更新 更多