matlab如何画填充的图? |
您所在的位置:网站首页 › matlab画好几个图 › matlab如何画填充的图? |
我有一个笨笨的办法。 首先,这种方法对于曲线完全位于 x 轴上方有效。 使用的函数是 fill, 看一下一个简单的示例 x = [0,1,1,0]; y = [1,2,0,0]; fill(x,y,'b') xlim([-1,2]) ylim([-1,3]) axis square理解一下,就是 x = [0,1,1,0]; y = [1,2,0,0];给了四个点的坐标 (0,1),(1,2),(1,0),(0,0),也就是图中红色的四个点,顺序是顺时针。 这个顺序比较重要,当然你逆时针也行,但总是最终fill填充的按顺序包围的区域。 那么复杂一点,我怎么绘制 \cos(x)+1.2 并把它和x轴之间的区域填充呢? 思路就是在 \cos(x) 上采样一些点,然后再加上x坐标轴上的两个点构成一个封闭的多边形,然后对它填充颜色即可。 fill可以使用一个rgb三元组来定义一个颜色,上面我就用了一个灰色。 上面的图中只采样了8个点,我们看看更多点会如何。 这张图中是在上面的程序中修改了 x = linspace(0,2*pi,2^8);所以看起来像是把曲线下方全部填充了一样。 那么多个图形,我们只要分别设定他们的填充颜色以及绘制的先后顺序即可。下面画了一个例子 figure; x = linspace(0,2*pi,2^9); y1 = cos(x-1)+1.2; y2 = cos(x)+1.5+0.2*rand(1,length(x)); y3 = cos(x+pi/2)+2; mycolor = [[140 199 181]/255;180/255*[1 1 1];[244 244 200]/255]; y_total = [y3;y2;y1]; for ii = 1:3 h = fill([x,2*pi,0],[y_total(ii,:),0,0],mycolor(ii,:)); h.LineStyle='-.'; hold on; end xlim([0,2*pi])颜色上么,虽然我觉得不太好看,但是效果,em,就是这么个效果 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |