在matlab中设置plotyy函数与文本

时间:2014-06-12 15:00:27

标签: matlab textlabel

我需要在单独的y轴上绘制两组数据,并将它们与文本

的x进行对比
y1 = 

    0.0217545037216382
    0.0218522372528616
    0.00848250610252238
    0.00631477252766555
    0.00836543852985331
    0.00404498017959712
    0.0111088524041279
    0.0137053885611881
    0.0127748811974527
    0.0127058407416728

y2= [3,3,3,4,5,4,5,4,3,4]

x={'AU10','WI11','SP11','AU11','WI12','SP12','AU12','SP13','AU13','SP14']

我无法绘制vs文字,所以我创建了

x2=[1:10]

plotyy(x2,y1,x2,y2)

然后将x更改为我使用的文字

set(gca,'XTickLabel',x);

但问题是文本标签下面还有1:10标签,所以我尝试用

删除标签
set(gca,'XTick',[])
set(gca,'XTickLabel',[])

set(gca,'Ticklength',[0 0])

也尝试用这个替换

set(gca, 'XTickLabel',x, 'XTick',1:numel(x))

但是1:10字符串仍在文本字符串下面。

1 个答案:

答案 0 :(得分:1)

问题出现是因为plotty创建了两个轴。执行set(gca,'XTickLabel',x);时,您只影响其中一个轴(gca仅指一个轴,可能是最后创建的轴。)

解决方案:

  1. 获取两个轴的句柄

    h = plotyy(x2,y1,x2,y2);
    

    (检查h是1x2句柄向量)

  2. 将两个轴的'Xticklabel'属性设置为所需的标签:

    set(h,'XTickLabel',x);
    

    或者,将其中一个轴的'Xticklabel'设置为所需标签,另一个轴将其设置为[](无标签):

    set(h(1),'XTickLabel',x);
    set(h(2),'Xticklabel',[])