24小时热门版块排行榜    

查看: 1873  |  回复: 5

watertxf

铁虫 (初入文坛)

[求助] 双纵坐标下如何将八个图形显示在同一张图形中

程序代码如下:
clear
clc
syms x
a=0.001:0.001:0.2;
%M=size(a)
for i=1:200
    f=x^4-2i*(10^-5)*x^3-x^2*(24^2+(-1+(0.3*2.4048/0.015/2/pi)^2)/a(i))+2i*x*10^-5*(0.3*2.4048/0.015/2/pi)^2/a(i)+(0.3*2.4048/0.015/2/pi)^2*24^2/a(i);
    result=solve(f);
    x1=real(result)/24;
    x2=imag(result)/24;
    y1(i)=x1(1,;%
    y2(i)=x1(2,;
    y3(i)=x1(3,;
    y4(i)=x1(4,;
    z1(i)=x2(1,;
    z2(i)=x2(2,;
    z3(i)=x2(3,;
    z4(i)=x2(4,;
end

plotyy(a,y1,a,z1)%','g *''b *'
axis([0 0.2 -2 2]);
hold on
plotyy(a,y2,a,z2)%'g *'
hold on
plotyy(a,y3,a,z3)
hold on
plotyy(a,y4,a,z4)
%axis([0 0.2 -2 2]);
%plotyy(a,x1(1,,a,x2(1,)
我觉得这样讲八条曲线画到一个图形中不太对,这样的话八条曲线都只能用实线表示,怎么样让不同的曲线用不同的符号表示?比如点号星号之类的。我画出的图形和需要的图形如下:怎样画出需要的那样?谢谢![ Last edited by watertxf on 2013-10-20 at 11:16 ]
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : 程序运行结果.jpg
  • 2013-10-20 11:14:08, 34.96 K
  • 附件 2 : 正确结果.jpg
  • 2013-10-20 11:14:18, 21.08 K

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

watertxf

铁虫 (初入文坛)

程序代码

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : wenxian2000.m
  • 2013-10-20 11:22:56, 656 bytes
2楼2013-10-20 11:23:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhg19

金虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
watertxf: 金币+15, ★★★★★最佳答案 2013-10-23 09:03:30
LZ可尝试如下形式:
[ax,h1,h2]=plotyy(a,y1,a,z1);
set(h1,'linestyle','-','marker','o','color','r');
set(h2,'linestyle',':','marker','x','color','b');
其中线型'Linestyle'、'Marker'和颜色‘Color’值可参考:
Specifier Linestyle Type:
'-' Solid line (default)
'--'Dashed line
':'Dotted line
'-.' Dash-dot line
Specifier Marker Type:
'+'Plus sign
'o'Circle
'*'Asterisk
'.'Point
'x'Cross
'square' or 's'Square
'diamond' or 'd'Diamond
'^'Upward-pointing triangle
'v'Downward-pointing triangle
'>'Right-pointing triangle
'<'Left-pointing triangle
'pentagram' or 'p'Five-pointed star (pentagram)
'hexagram' or 'h'''Six-pointed star (hexagram)
Note:  The point (.) marker type does not change size when the specified value is less than 5.
Specifier Color Type:
r Red
g Green
b Blue
c Cyan
m Magenta
y Yellow
k Black
w White
3楼2013-10-20 23:35:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

watertxf

铁虫 (初入文坛)

引用回帖:
3楼: Originally posted by zhg19 at 2013-10-20 23:35:06
LZ可尝试如下形式:
=plotyy(a,y1,a,z1);
set(h1,'linestyle','-','marker','o','color','r');
set(h2,'linestyle',':','marker','x','color','b');
其中线型'Linestyle'、'Marker'和颜色‘Color’值可参考:
...

非常感谢!我还有一个问题,z1和z4基本相等,z2和z2基本相等,为什么画出的图形z1显示的数值不正确呢?我的程序代码如下:clear
clc
syms x
a=0.001:0.001:0.2;
%M=size(a)
for i=1:200
    f=x^4-2i*(10^-5)*x^3-x^2*(24^2+(-1+(0.3*2.4048/0.015/2/pi)^2)/a(i))+2i*x*10^-5*(0.3*2.4048/0.015/2/pi)^2/a(i)+(0.3*2.4048/0.015/2/pi)^2*24^2/a(i);
    result=solve(f);
    x1=real(result)/24;
    x2=imag(result)/24;
    y1(i)=x1(1,;
    y2(i)=x1(2,;
    y3(i)=x1(3,;
    y4(i)=x1(4,;
    z1(i)=x2(1,;
    z2(i)=x2(2,;
    z3(i)=x2(3,;
    z4(i)=x2(4,;
end
z1-z4
z2-z3

plotyy(a,y1,a,z1)
[ax,h1,h2]=plotyy(a,y1,a,z4);
set(h1,'linestyle','-','marker','*','color','r');
set(h2,'linestyle',':','marker','p','color','b');%','g *''b *'
axis([0 0.2 -2 2]);
hold on
plotyy(a,y2,a,z2)%'g *'
[ax,h1,h2]=plotyy(a,y2,a,z2);
axis([0 0.2 -2 2]);
set(h1,'linestyle','-','marker','*','color','r');
set(h2,'linestyle',':','marker','p','color','b');
hold on
[ax,h1,h2]=plotyy(a,y3,a,z3);
set(h1,'linestyle','-','marker','*','color','r');
set(h2,'linestyle',':','marker','p','color','b');
hold on
[ax,h1,h2]=plotyy(a,y4,a,z4);
set(h1,'linestyle','-','marker','*','color','r');
set(h2,'linestyle',':','marker','p','color','b');
%axis([0 0.2 -2 2]);
%plotyy(a,x1(1,,a,x2(1,)
双纵坐标下如何将八个图形显示在同一张图形中
应该画出的图形.jpg


双纵坐标下如何将八个图形显示在同一张图形中-1
实际画出的图形.jpg

4楼2013-10-22 09:41:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhg19

金虫 (小有名气)

试试这个:
[AX,h1,h2]=plotyy(a,[y1;y2;y3;y4],a,[z1;z2;z3;z4]);
set(h1,'linestyle','-','marker','*','color','r');
set(h2,'linestyle',':','marker','p','color','b');
set(AX(1),'yTick',[-2:0.5:2],'ylim',[-2 2]);
set(AX(2),'yTick',[-0.08:0.02:0.08],'ylim',[-0.08 0.08]);
5楼2013-10-22 14:55:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

watertxf

铁虫 (初入文坛)

引用回帖:
5楼: Originally posted by zhg19 at 2013-10-22 14:55:00
试试这个:
=plotyy(a,,a,);
set(h1,'linestyle','-','marker','*','color','r');
set(h2,'linestyle',':','marker','p','color','b');
set(AX(1),'yTick',,'ylim',);
set(AX(2),'yTick',,'ylim',);...

非常感谢!太棒了
6楼2013-10-23 09:02:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 watertxf 的主题更新
信息提示
请填处理意见