matlab 如何填充陆地颜色

有两个数组lon和lat,使用plot(lon,lat)得到的是中国地图,边界为黑色,陆地和海洋为白色,如何将陆地的颜色改为绿色?
非常感谢的大家的帮助和关注
好像有area,fill,patch三个函数可以进行此类操作吧,三个函数有啥异同?
我偶然解决了遇到的问题,使用set(gca,'color',[.9 .9 .9]);

建议使用area函数,莪自己编了一个关于太极的MATLAB小程序,你可以参考一下

clc,clear

hold on

t1=0:pi/100:2*pi;

x1=cos(t1)*4;

y1=sin(t1)*4;

t2=0:pi/20:pi;

x2=cos(t2)*2+2;

y2=sin(t2)*2;

t3=pi:pi/20:2*pi;

x3=cos(t3)*2-2;

y3=sin(t3)*2;

t4=0:pi/20:2*pi;

x4=cos(t4)+2;

y4=sin(t4);

t5=0:pi/20:2*pi;

x5=cos(t5)-2;

y5=sin(t5);

x6=[x1(:,1:101) x2 x3];

y6=[y1(:,1:101) y2 y3];

x7=[x1(:,101:201) x2 x3];

y7=[y1(:,101:201) y2 y3];

plot(x1,y1,'k')

area(x6,y6,'facecolor','k','linestyle','none')

area(x5,y5,'facecolor','w','linestyle','none')

area(x7,y7,'facecolor','w','linestyle','none')

area(x4,y4,'facecolor','k','linestyle','none')

希望采纳 下图是效果图

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-10-21
用MatLab在两条曲线之间填充颜色,比较难以实现,这里提供一个简单的程序作为参考:

x=[1 2 3 4 5 6 7];
Y1=[2 3 4 5 6 7 8];
Y2=[3 4 5 6
7 8 9];
k=1;
for
i=0:length(x)-1

x1(k)=x(length(x)-i);

Z2(k)=Y2(length(x)-i);
k=k+1;
end
fill([x x1],[Y1 Z2],'b')
% fill
也可以换成patch

注:fill命令的含义是在某一个多边形区域内填充指定颜色,即命令中“b”来表示。fill([x
x1],[Y1 Z2],'b')具体含义为,[x x1]表示一个一个横向量【1 2 3 4 5 6 7 7 6 5 4 3 2
第2个回答  2010-08-27
原代码贴出来,看看....

Matlab程序问题 涉及m_map作图
file_name = 'mw.fusion.2015.001.rt';[sst,~,~] = read_rss_mw_sst(file_name);newsst=flipud(sst');newsst(newsst>250)=NaN;%以上是文件读取,跟作图无关,重点在下面lat=89.875:-0.25:-89.875;%纬度设置,起点、跨度、终点lon=0.125:0.25:359.875;%经度设置,同上[grid_lat,grid_lon]=ndgrid(lat,lo...

在matlab中如何输出一个函数的图像
方法一:利用plot函数来绘画图像 x=0:0.1:20; %规定绘画区间(从-20画到20,中间以0,1为间隔)y=x.^3+x.^2+x+5; %确定要绘画的函数,注意不要漏了“.”plot(x,y)方法二:利用ezplot函数来绘画图像 ezplot('x^3+x^2+x+5',[-20,20])利用ezplot函数可以直接画出函数图像 ...

相似回答