Matlab在数值计算和处理上确实很牛逼, 并且应用范围特别广, 设计到许多学科! 我前年接触Matlab, 学到现在, 感觉在数值计算和处理遥感影像上程序编写的还行, 但是设计到Matlab绘图我就彻底懵了, 今天又遇到绘制带有经纬度的气象数据的图, 由于ArcGis不能将栅格的形状变为圆形, 所以今天尝试了一下用matlab绘制了一下, 在这里记录一下, 为以后深入学习留下记忆!
需求是绘制全国500多个站点52年的7月和8月气温大于阀值(25.8)的天数, 对这52年的数据进行
趋势分析获得的趋势数据和经纬度数据在全国矢量图上展示出来
按上述绘制要求的图形, 使用自己的数据进行绘制,虽然绘制不是, 并且还没完成, 但还是上传一下.
至于Matlab代码不是很多, 主要是使用scatter函数, 但是对该函数的理解是特别重要的, 涉及参数的设置问题.
clc
clear all
close all
%读取excel中数据
data = xlsread('D:/metero.xlsx', 'sheet3', 'A2:G579');
%获取精度纬度
lon= data(:, 6);
lat = data(:, 5);
%获取降水天数的斜率
ppt = 10.*data(:, 2);
%先创建图像窗口句柄
figure1=figure;
%创建axes句柄
%展示中国边界
geoshow('D:/LST/china_line.shp', 'color', 'black');
%设置坐标轴
%设置坐标轴标签
xlabel('Longitude(°E)', 'fontsize', 12, 'fontweight', 'b');
ylabel('Latitude(°N)', 'fontsize', 12, 'fontweight', 'b');
%显示四周边框
box on;
hold on;
%将流域边界加进去使用geoshow函数
geoshow('D:/LST/river_border.shp', 'color', 'blue');
%MarkerEdgeColor表示标记边缘颜色,将其设为白色,即[1.0 1.0 1.0]
scatter(lon, lat, 50, ppt, 'filled', 'MarkerFaceColor', 'flat', 'MarkerEdgeColor', [1.0 1.0 1.0]);
%colormap(cool);
%颜色条的位置
contourcmap( 'jet', [-30:5:30], 'colorbar', 'on', ...
'location', 'vertical', 'fontsize', 13);
% 将自定义颜色模式载入当前的workspace,存入一个名叫mycmap的变量矩阵之中;其中自定义颜色棒可 %以参考这个
%http://blog.sina.com.cn/s/blog_4ac35a650100xktr.html
%http://blog.sina.com.cn/s/blog_68fff85f0102v4h1.html
load('MyColormaps', 'mycmap') ;
% 将mycmap对应的变量矩阵应用到figure1对应的图片中或者对应图像gcf句柄,这色棒会覆盖前面jet的;
set(figure1, 'Colormap', mycmap, 'position', [1.0 1.0 1082 602]);
% Create title
title('days per decade', 'Rotation', -90, 'FontSize', 14);
%标题的位置需要自己手动一下
%出图时matlab默认分辨率很模糊,需要自己设置一下
%File-->export setup,显示如下图所示对话框,然后点击Rendering,里面选择resolution,修改为600, %点击export,选择输出格式,OK,即可。