从plotyy谈一张图双坐标系的画法

在一张图使用双坐标是一个比较常见的问题。这里大概讨论一下。

matlab提供了plotyy函数,其用法如下:

plotyy(X1,Y1,X2,Y2)
plotyy(X1,Y1,X2,Y2,function)
plotyy(X1,Y1,X2,Y2,'function1','function2')
[AX,H1,H2] = plotyy(...)

其中function为function(x,y)形式的函数句柄,可以使用匿名函数。
但直接使用有以下问题:
(1)对多组数据的支持不好,用法说明不明。
(2)一组[X1,Y1]不适合一次画出时,支持也不好。

因此本文建议用如下方式处理;

tf = @(x, y) plot(x, y, 'Visible', 'off'); %temporary function handle; 
figure;
    h = plotyy(0, 0, 0, 0, tf, tf);  % create a blank axes
    axes(h(1));
        hold on;
        %plot code part1;
        xlim(...);ylim(...);
    axes(h(2));
        hold on;
        %plot code part2;
        ylim(...);

分析:
(1)plotyy的句柄是一个二维向量,分别对应坐标系1和2,也可以使用独立句立句柄设置。
(2)hold on单独写出是因为多组数据绘图时似乎会各种不对。
(3)这样绘图X坐标显示可能会比较乱,需要自行设置好。
(4)另外 帮助中的 Graph with Multiple x-Axes and y-Axes 部分可供参阅。
(5)xlim和ylim单独写出是因为在第一次运行plotyy会指定默认的xlim和ylim并且不会随后来的plot更改,需要自行调整。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值