3

我需要在单独的 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']

我无法绘制与文本,所以我创建了

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 字符串仍然存在于文本字符串下方。

4

1 回答 1

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',[])
    
于 2014-06-12T15:20:31.370 回答