※ ChatGPTを利用し、要約された質問です(原文:Matlabのオブジェクト)
Matlabのオブジェクトの制御方法とは?
このQ&Aのポイント
Matlabのグラフのx軸のラベル'×10^7'を制御する方法を教えてください。
現在、Xdataを加工して'×10^7'を削除してから任意の位置にテキストを貼り付けていますが、より効率的な制御方法はありますか?
グリッドに対応するx軸のラベルはget(gca,'Xticklabel')で取得できますが、'×10^7'の情報は含まれていません。どこで制御されているのでしょうか?
例えば
x=[1,1e8];
y=[1,1e4];
plot(x,y);
とするとx軸の範囲は1~100万(厳密に指定しなければ0~100万になるはず)になります。
その時x軸のラベルは何も指定しなければグリッドに対応させて{'0','1','2',…'10'}となり、右下に'×10^7'の表記が出るかと思います。
この'×10^7'とは、何によって制御されているんでしょうか?
色々調べてみると、
get(gca,'Xtick');よりXtickの値は真値(0,10万,20万,…,100万)が入っている
get(gca,'Xticklabel');を調べると[' 0';' 1';' 2';' 3';…;'10'];しか入っておらず、'×10^7'の情報は入っていない。
set(0,'ShowHiddenHandle','on');で不可視のオブジェクトも全て見えるようにして、h=findall(gcf);でfigureに含まれるオブジェクトのハンドルを全部とりだしたが、その中に'×10^7'の情報が含まれたオブジェクトは見つけられず。
といった感じです。
何がしたいかと言えば、'×10^7'の位置を自由に調整したいです。(これがtextオブジェクトならpositionプロパティがあるはずなので位置を動かせるハズ)
今はXdataを10万で割ることで'10^7'をデータからなくしてから、textを使って'×10^7'を任意の位置に貼り付けていますが、これだとデータを加工していることになりその後の処理をする上であまり嬉しくありません(他のデータも合わせてプロットする時、そのたびにxdataを調整するのがめんどくさい)
Xdataを加工することなく、'×10^7'の位置だけを動かせるのがベストなんですが…
この'×10^7'を制御しているオブジェクトはどこにあるんでしょうか?あるいは、どこで制御しているんでしょうか?
よろしくお願い致します。
お礼
回答ありがとうございます。 Matlabcentralは自分でもざっくり調べていたのですが、関連する質問を自力では見つけることができませんでした。 Xticklabelmodeでonoffするしかないってのは不便ですねえ…これmanualにすること自体結構手続きメンドクサイのに、manualにしちゃうと全部自分で書かないといけないという(笑) まあデータを加工するなりしてなんとかするしかなさそうですね。 ありがとうございました!