0

私はMatlabに私のcontourfプロットのラベル付けを約1時間変更させようとしています。XTickLabel または XTick を変更しようとすると、x 軸が完全に削除されます。苛立たしくて腹立たしいのは、すべてのヘルプ ページヘルプ フォーラムで求められていることを正確に実行しているということです。なぜこれが機能しないのか、正直わかりません。

したがって、私はここにいます。

私のプロットコード(関数の知識は必要ありません-コードはかなり複雑です。ただし、有効なデータと範囲を含む2Dコンタープロットです-グラフではなく軸が問題です):

   contourf(time,f,power,levels)
   colormap(jet(levels))
   set(gca,'XTickLabelMode','manual')
   set(gca, 'XTick', 0:23);
   set(gca, 'XTickLabel', {'0';'1';'23'});
   xlabel('Time (UT)')
   ylabel('Frequency (Hz)')
   caxis([0,8])
   axis([0 StopTime 0 0.1])

どんな助けでも大歓迎です!

4

3 に答える 3

3

解決済み:

「XTick」は、x 軸を定義するために使用していた配列の現在の値に依存していることに気付きました。matlab が新しい配列を均等に配置すると仮定することはできません (少なくとも、それを行う方法があるかどうかはわかりません)。X 軸に 85,680 個のデータ ポイントがあるので、単純に次のように再スケーリングしました。

   set(gca, 'XTick', 0:3570:85680)
   set(gca, 'XTickLabel', num2cell(0:24))

話の教訓: Matlab では、これら 2 つの関数を使用して古い軸の上に新しい軸を任意に貼り付けることはできません。

于 2014-11-04T11:18:21.957 に答える
1

axis([0 StopTime 0 0.1]))新しい軸を作成して、プロットをクリアする最終コマンドがあります。それが、既存のすべてのプロットがなくなった理由です。それを削除してみてください:

contourf(time,f,power,levels)
colormap(jet(levels))
set(gca,'XTickLabelMode','manual')
set(gca, 'XTick', 0:23);
set(gca, 'XTickLabel', {'0';'1';'23'});
xlabel('Time (UT)')
ylabel('Frequency (Hz)')
caxis([0,8])

ここで問題は次のようになります: ティックは、表現しているデータに対して賢明に配置されていますか? データを知らなければ、私はあなたのためにこれに答えることができません. だからボールは今あなたのコートにあります。;)

于 2014-11-04T10:32:09.283 に答える