3

別々の y 軸に 2 セットのデータをプロットし、それらをテキストである 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

2 つのplottyを作成するため、問題が発生します。あなたがそうするとき、あなたはそれらの軸の1つだけに影響を与えています(1つの軸だけを指し、おそらく最後に作成されたものを指します)。set(gca,'XTickLabel',x);gca

解決:

  1. 2 つの軸のハンドルを取得する

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

    h(ハンドルの 1x2 ベクトルであることを確認してください)

  2. 'Xticklabel'両方の軸のプロパティを目的のラベルに設定します。

    set(h,'XTickLabel',x);
    

    または、軸の 1 つを目的のラベルに設定'Xticklabel'し、もう 1 つの軸を[](ラベルなし) に設定します。

    set(h(1),'XTickLabel',x);
    set(h(2),'Xticklabel',[])
    
于 2014-06-12T15:20:31.370 に答える