zhangshixiang 发表于 2010-9-20 14:30:22

新手请教有关ezplot的绘图问题

x=sqrt(9+0.9*(5*(y^2+1/16)+sqrt((5*y/8).^2-0.05
x=sqrt(9+0.9*(5*(y^2+1/16)-sqrt((5*y/8).^2-0.05
x=sqrt(9+0.9*(5*(y^2+9/16)+sqrt((45*y/8).^2-0.05
x=sqrt(9+0.9*(5*(y^2+9/16)-sqrt((45*y/8).^2-0.05
各位高手好:
       我想把这四个方程的图画在同一张图上,并且用legend把四条曲线的颜色和线的属性区分开来!特请教各位大虾!!!再次感谢!

messenger 发表于 2010-9-20 14:43:35

用hold on就可以了,具体做法可以搜索一下以前的贴子。

qibbxxt 发表于 2010-9-20 15:36:40

clear;clc;close all
n=100;m=4;
y=linspace(0,1);
x(n,4)=0;
x(:,1)=sqrt(9+0.9*(5*(y.^2+1/16)+sqrt((5*y/8).^2-0.05)));
x(:,2)=sqrt(9+0.9*(5*(y.^2+1/16)-sqrt((5*y/8).^2-0.05)));
x(:,3)=sqrt(9+0.9*(5*(y.^2+9/16)+sqrt((45*y/8).^2-0.05)));
x(:,4)=sqrt(9+0.9*(5*(y.^2+9/16)-sqrt((45*y/8).^2-0.05)));
set(0,'DefaultAxesColorOrder',rand(m,3));
set(0,'DefaultAxesLineStyleOrder','-o|--s|:d|-+');
plot(real(x),repmat(y',1,m));
legend(cellfun(@num2str,num2cell(1:m),'UniformOutput',false),'Location','best');
set(0,'DefaultAxesLineStyleOrder','remove')
set(0,'DefaultAxesColorOrder','remove')

qibbxxt 发表于 2010-9-20 16:01:55

如果用ezplot的话

m=4;hold on
h(1)=ezplot('sqrt(9+0.9*(5*(y.^2+1/16)+sqrt((5*y/8).^2-0.05)))-y');
h(2)=ezplot('sqrt(9+0.9*(5*(y.^2+1/16)-sqrt((5*y/8).^2-0.05)))-y');
h(3)=ezplot('sqrt(9+0.9*(5*(y.^2+9/16)+sqrt((45*y/8).^2-0.05)))-y');
h(4)=ezplot('sqrt(9+0.9*(5*(y.^2+9/16)-sqrt((45*y/8).^2-0.05)))-y');
arrayfun(@set,h,{'color','color','color','color'},{'r','b','k','c'})
title('')
legend(strcat({'第'},num2str((1:m)','%d'),{'条曲线'}));

gouff 发表于 2010-9-20 21:43:55

本帖最后由 messenger 于 2010-9-21 17:46 编辑

tt=*24*3600;
r=transpose(0.1:0.01:10);
A=kron(1./(4*yita*tt),r.^2);
X=mfun('Ei',1,A);
Y=-p1.*X+p2;
figure
set(0,'DefaultAxesColorOrder',,...
      'DefaultAxesLineStyleOrder','-|--|:')
plot(-r,Y,r,Y);
legend('t=0.01d','t=0.1d','t=1d',4);
set(gca,'LineWidth',1);
title('压力传播曲线')
xlabel('r /m')
ylabel('P /Pa')
set(0,'DefaultAxesColorOrder','remove',...
      'DefaultAxesLineStyleOrder','remove')
saveas(gcf,'results\1\不同时间地层压力分布.fig');
close(gcf);

图片上传不了,感兴趣的可以自己运行

lengyunfeng 发表于 2010-9-20 22:46:04

5# gouff

看你的程序的用途倒是有点意思,应该是做土压力随深度和时间的变化的,也挺有意义的。不过有一个问题哈,你的程序第三行里有一个yita是没有定义的,建议你再检查一下。还有,你的这个回复和这个帖子无关,建议不要发在这。如果把程序弄好的话,你可以自已发一个帖子,介绍一下背景、思路以及运用方面的东西,应该会是一篇不错的东西。

qibbxxt 发表于 2010-9-21 08:27:13

本帖最后由 qibbxxt 于 2010-9-21 08:49 编辑

上面4#的方程写错了,更正一下,代码为:
m=4;hold on
h(1)=ezplot('sqrt(9+0.9*(5*(y.^2+1/16)+sqrt((5*y/8).^2-0.05)))-x');
h(2)=ezplot('sqrt(9+0.9*(5*(y.^2+1/16)-sqrt((5*y/8).^2-0.05)))-x');
h(3)=ezplot('sqrt(9+0.9*(5*(y.^2+9/16)+sqrt((45*y/8).^2-0.05)))-x');
h(4)=ezplot('sqrt(9+0.9*(5*(y.^2+9/16)-sqrt((45*y/8).^2-0.05)))-x');
arrayfun(@set,h,{'color','color','color','color'},{'r','b','k','c'});
arrayfun(@set,h,repmat({'LineStyle'},1,4),{'-','--',':','-.'});
title('')
legend(strcat({'第'},num2str((1:m)','%d'),{'条曲线'}),'Location','best');

zhangshixiang 发表于 2010-9-21 14:18:10

各位大虾的指点让小弟受益匪浅,很好地学习了一回!谢过~~~~~~~~,希望再以后学习MATLAB的过程中继续得到各位的指点!祝各位大虾中秋快乐!!!!
页: [1]
查看完整版本: 新手请教有关ezplot的绘图问题