Matlab绘制南极投影散点图
作者:互联网
file_name1='adelie_cor_plot.xlsx';
file_name2='adelie_pvalues_plot.xlsx';
flag_index=1;
p_value_limit=0.05;
min=-0.4307;
max=0.4307;
%% 画南极全图*******************************************************
figure;
fpni='C:\Users\刘鸿伟\Desktop\my shp\meteoinfo学习\shp文件集合\ne_10m_coastline\ne_10m_coastline.shp';%中国地图shp文件所在路径
China=shaperead(fpni);
boux=[China(:).X];bouy=[China(:).Y];%分别是获取经度X信息和纬度Y信息
set(gcf,'position',[0 0 1000 500]);%设置图形窗口位置和大小
m_proj('stereographic','lat',-90,'long',0,'radius',30);%南极整体
m_plot(boux,bouy,'k');%最关键的一句,绘制地图
%下面这句设置图形横纵坐标为经纬度格式
m_grid('xtick',12,'tickdir','out','ytick',[],'linest',':','xaxisloc','top');
hold on;
data=xlsread(file_name1);
lon=data(:,42);
lat=data(:,43);
SAM=data(:,flag_index);
dataco1=SAM;
m_scatter(lon,lat,90, dataco1,'filled','MarkerEdgeColor','k', 'MarkerFaceColor', 'flat','linewi',0.5) ;%画实心点图
h=colormap(jet);
colorbar('position',[0.76 0.12 0.05 0.8],'linewidth',1.5,'fontsize',15);
caxis([min,max]);
%% 画南极半岛*******************************************************
figure;
fpni='C:\Users\刘鸿伟\Desktop\my shp\meteoinfo学习\shp文件集合\ne_10m_coastline\ne_10m_coastline.shp';%中国地图shp文件所在路径
China=shaperead(fpni);
boux=[China(:).X];bouy=[China(:).Y];%分别是获取经度X信息和纬度Y信息
set(gcf,'position',[0 0 1000 500]);%设置图形窗口位置和大小
%m_proj('stereographic','lat',-90,'long',0,'radius',30);%南极整体
%南极半岛区域
lon1=-72;
lon2=-56;
lat1=-68;
lat2=-60;
lonlim=[lon1 lon2];
latlim=[lat1 lat2];
m_proj('mercator', 'lon', lonlim, 'lat', latlim);
m_plot(boux,bouy,'k');%最关键的一句,绘制地图
%下面这句设置图形横纵坐标为经纬度格式
m_grid('xtick',4,'tickdir','out','ytick',4,'linest',':','xaxisloc','top');
hold on;
data=xlsread(file_name1);
lon=data(:,42);
lat=data(:,43);
SAM=data(:,flag_index);
index=lon>lon1 & lon<lon2 & lat>lat1 & lat<lat2;
lon=lon(index);
lat=lat(index);
SAM=SAM(index);
dataco1=SAM;
m_scatter(lon,lat,120, dataco1,'filled','MarkerEdgeColor','k', 'MarkerFaceColor', 'flat','linewi',0.01) ;%画实心点图
h=colormap(jet);
colorbar('position',[0.86 0.12 0.05 0.8],'linewidth',1.5,'fontsize',15);
caxis([min,max]);
%显著性水平
p_values=xlsread(file_name2);
SAM_p=p_values(:,flag_index);
SAM_p=SAM_p(index);
SAM_p=SAM_p(SAM_p<p_value_limit);
lon=lon(SAM_p<p_value_limit);
lat=lat(SAM_p<p_value_limit);
m_scatter(lon,lat,120,'MarkerEdgeColor','k', 'MarkerFaceColor', 'flat','linewi',2.5) ;
m_northarrow(-58,-61,.5,'type',2);
%% 画罗斯海区域*****************************************************
figure;
fpni='C:\Users\刘鸿伟\Desktop\my shp\meteoinfo学习\shp文件集合\ne_10m_coastline\ne_10m_coastline.shp';%中国地图shp文件所在路径
China=shaperead(fpni);
boux=[China(:).X];bouy=[China(:).Y];%分别是获取经度X信息和纬度Y信息
set(gcf,'position',[0 0 1000 500]);%设置图形窗口位置和大小
%m_proj('stereographic','lat',-90,'long',0,'radius',30);%南极整体
%南极半岛区域
lon1=150;
lon2=180;
lat1=-78;
lat2=-70;
lonlim=[lon1 lon2];
latlim=[lat1 lat2];
m_proj('mercator', 'lon', lonlim, 'lat', latlim);
m_plot(boux,bouy,'k');%最关键的一句,绘制地图
%下面这句设置图形横纵坐标为经纬度格式
m_grid('xtick',4,'tickdir','out','ytick',4,'linest',':','xaxisloc','top');
hold on;
data=xlsread(file_name1);
lon=data(:,42);
lat=data(:,43);
SAM=data(:,flag_index);
index=lon>lon1 & lon<lon2 & lat>lat1 & lat<lat2;
lon=lon(index);
lat=lat(index);
SAM=SAM(index);
dataco1=SAM;
m_scatter(lon,lat,120, dataco1,'filled','MarkerEdgeColor','k', 'MarkerFaceColor', 'flat','linewi',0.5) ;%画实心点图
h=colormap(jet);
colorbar('position',[0.86 0.12 0.05 0.8],'linewidth',1.5,'fontsize',15);
caxis([min,max]);
%显著性水平
p_values=xlsread(file_name2);
SAM_p=p_values(:,flag_index);
SAM_p=SAM_p(index);
SAM_p=SAM_p(SAM_p<p_value_limit);
lon=lon(SAM_p<p_value_limit);
lat=lat(SAM_p<p_value_limit);
m_scatter(lon,lat,120,'MarkerEdgeColor','k', 'MarkerFaceColor', 'flat','linewi',2.5) ;
m_northarrow(178,-71,.5,'type',2);
%% 画东南极区域
figure;
fpni='C:\Users\刘鸿伟\Desktop\my shp\meteoinfo学习\shp文件集合\ne_10m_coastline\ne_10m_coastline.shp';%中国地图shp文件所在路径
China=shaperead(fpni);
boux=[China(:).X];bouy=[China(:).Y];%分别是获取经度X信息和纬度Y信息
set(gcf,'position',[0 0 1000 500]);%设置图形窗口位置和大小
%m_proj('stereographic','lat',-90,'long',0,'radius',30);%南极整体
%南极半岛区域
lon1=38;
lon2=41;
lat1=-70;
lat2=-68.5;
lonlim=[lon1 lon2];
latlim=[lat1 lat2];
m_proj('mercator', 'lon', lonlim, 'lat', latlim);
m_plot(boux,bouy,'k');%最关键的一句,绘制地图
%下面这句设置图形横纵坐标为经纬度格式
m_grid('xtick',4,'tickdir','out','ytick',4,'linest',':','xaxisloc','top');
hold on;
data=xlsread(file_name1);
lon=data(:,42);
lat=data(:,43);
SAM=data(:,flag_index);
index=lon>lon1 & lon<lon2 & lat>lat1 & lat<lat2;
lon=lon(index);
lat=lat(index);
SAM=SAM(index);
dataco1=SAM;
m_scatter(lon,lat,120, dataco1,'filled','MarkerEdgeColor','k', 'MarkerFaceColor', 'flat','linewi',0.5) ;%画实心点图
h=colormap(jet);
colorbar('position',[0.86 0.12 0.05 0.8],'linewidth',1.5,'fontsize',15);
caxis([min,max]);
%显著性水平
p_values=xlsread(file_name2);
SAM_p=p_values(:,flag_index);
SAM_p=SAM_p(index);
SAM_p=SAM_p(SAM_p<p_value_limit);
lon=lon(SAM_p<p_value_limit);
lat=lat(SAM_p<p_value_limit);
m_scatter(lon,lat,120,'MarkerEdgeColor','k', 'MarkerFaceColor', 'flat','linewi',2.5) ;
m_northarrow(38.5,-68.7,.1,'type',2);
标签:shp,lon,投影,散点图,China,Matlab,boux,lat,data 来源: https://blog.csdn.net/weixin_45577825/article/details/119897854