声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 9768|回复: 15

[绘图技巧] plotyy双纵坐标绘图请教

[复制链接]
发表于 2007-11-22 11:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
双纵坐标图代码如下
问题是:我画出图形后,曲线y不知怎么修改它的颜色和粗细虚实,只有曲线s可以在图形中直接采用鼠标修改,请高手指点一下,
也就是说只能修改其中的一条曲线,另一条曲线不知道怎样才能修改它的颜色和虚实
clf;
dx=0.1;
x=0:dx:4;
y=x.*sin(x);
s=cumtrapz(y)*dx; %梯形法求累计积分
plotyy(x,y,x,s)
回复
分享到:

使用道具 举报

发表于 2007-11-22 11:35 | 显示全部楼层
原帖由 aiguo 于 2007-11-22 11:34 发表
双纵坐标图代码如下
问题是:我画出图形后,曲线y不知怎么修改它的颜色和粗细虚实,只有曲线s可以在图形中直接采用鼠标修改,请高手指点一下,
也就是说只能修改其中的一条曲线,另一条曲线不知道怎样才能修改它的颜 ...

请搜索版面,尤其是看看精华帖
 楼主| 发表于 2007-11-22 11:45 | 显示全部楼层

回复 #2 eight 的帖子

哪个位置有啊,找不到呢,请八哥超链接一下,行不?
发表于 2007-11-22 11:59 | 显示全部楼层
原帖由 aiguo 于 2007-11-22 11:45 发表
哪个位置有啊,找不到呢,请八哥超链接一下,行不?

自己找找吧,我也忘记了。搜索 plotyy 试试吧
 楼主| 发表于 2007-11-23 15:59 | 显示全部楼层

回复 #4 eight 的帖子

通过高人的贴子,下面的代码解决了部分问题,还有一点始终解不了:左右两边纵轴的颜色怎样改得与相应两曲线的颜色一致?
clf;
dx=0.1;
x=0:dx:4;
y=x.*sin(x);
s=cumtrapz(y)*dx;
[AX,H1,H2]=plotyy(x,y,x,s);
set(get(AX(1),'Ylabel'),'String','Left Y-axis','color','k','linewidth',1.2)
set(get(AX(2),'Ylabel'),'String','Right Y-axis','color','r','linewidth',1.2)
set(H1,'LineStyle','--','color','k','linewidth',1.2)
set(H2,'LineStyle',':','color','r','linewidth',1.2)

点评

set(AX(1),'Ycolor','k'); set(AX(2),'Ycolor','r')  发表于 2011-7-9 23:31
发表于 2007-11-23 16:09 | 显示全部楼层

回复 #5 aiguo 的帖子

答案就在你发的代码里,读懂后稍作改动
 楼主| 发表于 2007-11-23 16:16 | 显示全部楼层

回复 #6 花如月 的帖子

花大哥,
从中午弄到了现在还是不会,你还是指点一下吧,怎么修改?
发表于 2007-11-23 16:32 | 显示全部楼层

回复 #7 aiguo 的帖子

再加一条指令:
set(AX(:),'Ycolor',[1 0 1])
 楼主| 发表于 2007-11-23 16:39 | 显示全部楼层

回复 #7 aiguo 的帖子

小弟试过了,怎么不行呢,同时还请教一下花哥,两边纵轴粗细的改变?
多谢了!

[ 本帖最后由 eight 于 2007-11-23 16:40 编辑 ]
发表于 2007-11-23 16:43 | 显示全部楼层
原帖由 aiguo 于 2007-11-23 16:39 发表
小弟试过了,怎么不行呢,同时还请教一下花哥,两边纵轴粗细的改变?
多谢了!

建议自己多看看 matlab 帮助,多看看本版的置顶贴,然后动手试试,不要一味指望别人帮你解决一个又一个问题
发表于 2007-11-23 16:55 | 显示全部楼层

回复 #9 aiguo 的帖子

思路就是修改AX相应的属性,具体方法就是用set和get
我告诉你的方法是可行的,如果有问题可能是你版本低。把那条指令一分为2就可以了,要之多尝试。写那条指令的时候我也不知道用那种用法,写了后才知道:lol   所以要不怕出错,多尝试
-------------------------------------------
>> set(AX(:),'Ycolor',[1 0 1])
>>

[ 本帖最后由 花如月 于 2007-11-23 16:57 编辑 ]
temp.JPG

评分

1

查看全部评分

发表于 2009-8-29 15:58 | 显示全部楼层

双y坐标实例

close all hidden
clear all
clc
% w=boxcar(nfft);
fni1=input('请输入时间序列文件: ','s');
fid1=fopen(fni1,'r');
s=fscanf(fid1,'%s',1);
if same(s,'Curve')
     for i=1:61
             tline=fgetl(fid1);
          end
    else
   
    fid1=fopen(fni1,'r');
end
a1=fscanf(fid1,'%f');
status=fclose(fid1);
n=length(a1);
n2=n/2;
a2=reshape(a1,2,n2);
x1=a2(1,:);
y1=a2(2,:);
fni2=input('输入速度曲线文件','s');
fid2=fopen(fni2,'r');
b=fscanf(fid2,'%f');
n3=length(b);
n4=n3/2;
b2=reshape(b,2,n4);
x2=b2(1,:);
y2=b2(2,:);
p=polyfit(x2,y2,3);
y3=polyval(p,x2);
% plot(x2,y2)
[AX,H1,H2]=plotyy(x1,y1,x2,y3);
grid on;
xlabel('时间/s');
set(get(AX(1),'Ylabel'),'string','加速度/g');
set(get(AX(2),'Ylabel'),'string','速度km/h');
set(AX(1),'yTick',[-2:0.5:2]);
% % axes1 = axes('Position',[0.08 0.73 0.38 0.25],'Parent',figure1);
% axis(axes1,[0 xtime(end) -0.5 0.5]);
% set(AX(2),'YTick',[300:5:350]);
yticks2 = linspace(300,360,9);
set(AX(2),'YLim',[300 360],'YTick',yticks2);
set(H2,'linewidth',3);
untitled.jpg
发表于 2011-5-14 15:21 | 显示全部楼层
额,坐标范围还是木有学会啊。
发表于 2011-7-7 14:11 | 显示全部楼层
顶,学习,集腋成裘,聚沙成塔
发表于 2012-7-21 15:08 | 显示全部楼层
在这里总能找到我想学习的,顶啊顶
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-22 17:12 , Processed in 0.071710 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表