figure内のsu​bplotで共通のx​ticks,xtic​klabels,xl​imを使う方法

現在は各subplotに対し
xlabelname='namae'
subplot(1) xticklabels(xlabelname)
subplot(2) xticklabels(xlabelname) ...
と続けているのですが、figure内のサブプロットにすべて共通のxticks他を当てはめるので、もっと簡略化したいです。
setやXTicksなどを使ってできると思うのですが...?

 Respuesta aceptada

Kazuya
Kazuya el 30 de Oct. de 2018
Editada: Kazuya el 30 de Oct. de 2018
madhan ravi さんの回答にもありますが、ハンドルを使えばできそうです。
xlabelname = 'namae';
haxes1 = subplot(2,1,1);
haxes2 = subplot(2,1,2);
xticklabels([haxes1,haxes2],xlabelname)
___ = xticklabels(ax,___)
の構文です。それぞれの座標軸(サブプロット)を意味するハンドル haxes1, haxes2 を使うといろいろ便利ですのでぜひ。

3 comentarios

NAKAI TAKUYA
NAKAI TAKUYA el 31 de Oct. de 2018
ありがとうございます!!
ちなみにsubplotの各xlabel,ylabelも共通なのですが、同じ方法が通用しないようです。AxisではなくFigureのものだからなのかもしれませんが・・・ こちらの方法も教えていただけますか?
Kazuya
Kazuya el 4 de Nov. de 2018
("通用しな"かったサンプルコードがあると嬉しいんですけど)試してみましたが確かに同じ方法が xlabel 関数では実行できませんでした。xlabel もそれぞれの Axes にくっつくプロパティなんですが、xticklabel のようなシンプルな文字列ではなく、Text オブジェクトなのでややこしいみたいです。
subplot のハンドルを受け取ってラベルなどの各種設定を実行する関数を作れば、コードを見やすくするという目的だけは達成できそうですがいかがでしょう?
NAKAI TAKUYA
NAKAI TAKUYA el 5 de Nov. de 2018
ありがとうございます。いろいろ試してみます

Iniciar sesión para comentar.

Más respuestas (1)

madhan ravi
madhan ravi el 30 de Oct. de 2018
Editada: madhan ravi el 30 de Oct. de 2018
h = subplot(3,3,1);
h1 = subplot(3,3,1);
xlabel(h,'x');
ylabel(h,'y');
xlabel(h,'t');
ylabel(h,'y');
set(h,'XTickLabel',{'a','b','c'});
set(h1,'XTickLabel',{'g','h','j'});

1 comentario

madhan ravi
madhan ravi el 30 de Oct. de 2018
The above shows an example to change xticklabels for different subplots using handles

Iniciar sesión para comentar.

Preguntada:

el 30 de Oct. de 2018

Comentada:

el 5 de Nov. de 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!