24小时热门版块排行榜    

查看: 521  |  回复: 2

summerfox008

新虫 (正式写手)

[求助] 请问按这个程序画图,画出来的坐标,怎么有问题呢? 已有1人参与

按这个程序画出来的图,左右两个纵坐标,最大值16,为什么没有在一条水平线上呢?
通过拖拽窗口,倒是可以实现,但这样一来,数字就显得太小了。

这是程序代码:
clear all
x1=-5:2.5:5;
x2=-0.4:0.2:0.4;
y1=[7.7,5.7,0,5.8,10.4];
y2=[7.5,5.0,0,4.8,10.9];
y1=plot(x1,y1,'-*k');

set(gca,'xcolor');
set(gca,'xtick',[-5:2.5:5],'FontSize',14);
box off;
ylim([0,16]);
xlabel('△v(mm/s)')
ylabel('△E')

axes;
y2=plot(x2,y2,'--ok');
legend([y1,y2],'△v','△f');
set(gca,'xaxislocation','top','color','none','xcolor','r');
set(gca,'yaxislocation','right','color','none','xcolor','k');
set(gca,'xtick',[-0.4:0.2:0.4],'FontSize',14);
box off;
ylim([0,16]);
xlabel('△f(kHz)')
ylabel('△E')

请问按这个程序画图,画出来的坐标,怎么有问题呢?
untitled.jpg
回复此楼

» 猜你喜欢

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

Yan_Jordan

木虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
summerfox008: 金币+10, ★★★★★最佳答案, 谢谢 2017-05-23 12:04:32
这个是matlab 自动摆放各元件时造成的,这里主要是图例的位置
你可以换成这个,改变它的位置就行
legend([y1,y2],{'△v','△f'},'Position',[0.39,0.6,0.25,0.1]);

但其实我比较推荐,你在画完图之后用print 函数保存成图片文件(提高分辨率,增粗线条,增大字体),这样的结果会比较好看,不会像fig文件直接查看这样
2楼2017-05-06 01:51:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

summerfox008

新虫 (正式写手)

引用回帖:
2楼: Originally posted by Yan_Jordan at 2017-05-06 01:51:16
这个是matlab 自动摆放各元件时造成的,这里主要是图例的位置
你可以换成这个,改变它的位置就行
legend(,{'△v','△f'},'Position',);

但其实我比较推荐,你在画完图之后用print 函数保存成图片文件(提高分辨 ...

按照你的方法,改变图例位置,画出来还是不行啊

还有,print这个函数怎么用呢,能结合我这个例子,具体讲一下么?
3楼2017-05-06 21:09:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 summerfox008 的主题更新
信息提示
请填处理意见