关于【matlab画多个图在同一个窗口】,matlab怎么在一个图形窗口中画多个图形,今天犇犇小编给您分享一下,如果对您有所帮助别忘了关注本站哦。
内容导航:1、matlab画多个图在同一个窗口:matlab怎么在一个图形窗口中画多个图形2、MATLAB 绘制双y轴的柱状图实例加程序1、matlab画多个图在同一个窗口:matlab怎么在一个图形窗口中画多个图形工具/材料MatLab R2016a
操作方法打开MatLab的主窗口,进入命令行窗口。我们以y=x与y=x^2两个图像在一个窗口为例说明。
首先生成x,y1,y2的数据。x的范围是[-3,3],y1=x,y2=x^2。如图为代码以及部分数据
如果在同一个坐标轴上画出这两幅图,那么除了使用plot(x,y)以外,还需要使用hold on命令,意思是保持窗口,在同一个页面绘制。多个函数也是类似地,在两次绘制之间使用hold on
绘制出来的效果如图所示。
如果希望并排显示两幅图,则需要使用subplot(m,n,p)命令。其中m,n表示将画板分为m行n列,p表示下一幅图绘制在第p个位置(从左到右,从上到下编号)。例如,将这两幅图按一行两列显示的代码如下。
这样得到的图像显示如下。
2、MATLAB 绘制双y轴的柱状图实例加程序前面介绍过MATLAB如何绘制双y轴图形,为了节省论文里面的图形的数量,可以将类型相同的图绘制在一起,或者将要进行比较的结果数据进行处理。但是对于柱形图而言,当绘制图像的数据差距过大,数据小的图形的图像很短。今天主要介绍MATLAB 绘制双y轴的柱状图实例加程序。
例如要处理如下的数据,绘制柱形图进行对比分析。
data1 =[4201.9842 3702.1587 4089.4364 4141.2310 3977.6403 3679.8192]';data2 = [ 0.5370 0.5776 0.5698 0.5494 0.5627 0.5826]';data3 = [2.5475 2.0062 2.2437 2.3446 2.2953 2.1852]';
由数据分析得,三组数据的数量级差距较大,单个绘制出来的效果如图,其余两个柱形图差距较大,基本在图形上没有显示。
程序
clc;%清除命令行窗口clear all;%清除工作区变量close all;%关闭图形窗口%加载数据data1 =[4201.9842 3702.1587 4089.4364 4141.2310 3977.6403 3679.8192]';data2 = [ 0.5370 0.5776 0.5698 0.5494 0.5627 0.5826]';data3 = [2.5475 2.0062 2.2437 2.3446 2.2953 2.1852]';data4 = zeros(6,1);%绘制图像set(0,'DefaultFigureVisible','on');c = categorical({'Reference scenario','Scenario 1','Scenario 2','Scenario 3','Scenario 4','Scenario 5'});h1=bar(c,[ data1 data2 data2]);set(h1(1),'facecolor','r','LineStyle',':');set(h1(2),'facecolor','b','LineStyle',':');set(h1(3),'facecolor','k','LineStyle',':');grid on;grid minor;legend({'Total cost','MDI','PGSI'},'Location','northeast','NumColumns',3,'box','on');set(gca,'FontSize',11);
1.初步解决方法
我们可以尝试绘制双y轴图形,分开绘制图像的柱形图,可以参考往期绘制双y轴图形的方式尝试写程序,运行结果如图:
程序
clc;%清除命令行窗口clear all;%清除工作区变量close all;%关闭图形窗口%加载数据data1 =[4201.9842 3702.1587 4089.4364 4141.2310 3977.6403 3679.8192]';data2 = [ 0.5370 0.5776 0.5698 0.5494 0.5627 0.5826]';data3 = [2.5475 2.0062 2.2437 2.3446 2.2953 2.1852]';%绘制图像set(0,'DefaultFigureVisible','on');g=figure;left_color=[0 0 0];right_color=[0 0 0];set(g,'defaultAxesColorOrder',[left_color; right_color]);yyaxis leftc = categorical({'Reference scenario','Scenario 1','Scenario 2','Scenario 3','Scenario 4','Scenario 5'});h1=bar(c,[ data1 ]);set(h1(1),'facecolor','r','LineStyle',':');ylabel('Cost');ylim([0 5000]);grid on;grid minor;yyaxis righth2=bar(c,[ data2 data3]);set(h2(1),'facecolor','b','LineStyle',':');set(h2(2),'facecolor','k','LineStyle',':');ylim([0 3]);legend({'Total cost','MDI','PGSI'},'Location','northeast','NumColumns',3,'box','on');set(gca,'FontSize',11);
2.最终解决方法
我们可以借鉴图像中的分层原理,用零矩阵代替数据小的数,绘制双y轴的柱形图,将数量级大的和数据级小的分开绘制,绘制程序,结果如图:
程序
clc;%清除命令行窗口clear all;%清除工作区变量close all;%关闭图形窗口%加载数据data1 =[4201.9842 3702.1587 4089.4364 4141.2310 3977.6403 3679.8192]';data2 = [ 0.5370 0.5776 0.5698 0.5494 0.5627 0.5826]';data3 = [2.5475 2.0062 2.2437 2.3446 2.2953 2.1852]';data4 = zeros(6,1);%绘制图像set(0,'DefaultFigureVisible','on');g=figure;left_color=[0 0 0];right_color=[0 0 0];set(g,'defaultAxesColorOrder',[left_color; right_color]);yyaxis leftc = categorical({'Reference scenario','Scenario 1','Scenario 2','Scenario 3','Scenario 4','Scenario 5'});h1=bar(c,[ data1 data4 data4]);%用0数据占据位置 但是绘制时不会出现 进一步设置其颜色为所需的颜色set(h1(1),'facecolor','r','LineStyle',':');set(h1(2),'facecolor','b','LineStyle',':');set(h1(3),'facecolor','k','LineStyle',':');ylabel('Cost');ylim([0 5000]);grid on;grid minor;yyaxis righth2=bar(c,[ data4 data2 data3]);set(h2(1),'facecolor','r','LineStyle',':');set(h2(2),'facecolor','b','LineStyle',':');set(h2(3),'facecolor','k','LineStyle',':');ylim([0 3]);legend({'Total cost','MDI','PGSI'},'Location','northeast','NumColumns',3,'box','on');set(gca,'FontSize',11);
3.参考文章
[1]CSDN博主yyyyydddd1的《Matlab 绘制双y轴柱状图》
文章链接为:https://blog.csdn.net/yyyyydddd1/article/details/124194446
作 者 | 郭志龙编 辑 | 郭志龙校 对 | 郭志龙
本文关键词:matlab怎么在一个窗口中绘制多个图,matlab怎么在一个图形窗口中画多个图形框,matlab在同一窗口绘制图形,matlab怎么在一个图形窗口中画多个图形,matlab多个函数图图画在一个窗口。这就是关于《matlab画多个图在同一个窗口,matlab怎么在一个图形窗口中画多个图形(绘制双y轴的柱状图实例加程序)》的所有内容,希望对您能有所帮助!更多的知识请继续关注《八宝盒百科》百科知识网站:http://tj.jiuquan.cc!