軸の両端にテキストを追加したいです

2 次查看(过去 30 天)
Dai
Dai 2022-8-1
画像のような図を作成した際に、4つの青丸の部分にそれぞれ、medial、lateral、rostral、caudalと入れたいです。
xticks(0:10*0.125/A:40*0.125/A)
xticklabels({'0','1.0','2.0','3.0','4.0'})
としており、(yについても同様)
これを
xticks(0:10*0.125/A:40*0.125/A)
xticklabels({'medial 0','1.0','2.0','3.0','4.0'})
としたり
xticks([-1*0.125/A,0:10*0.125/A:40*0.125/A])
xticklabels({'medial','0','1.0','2.0','3.0','4.0'})
としたりしましたが、どちらも思うように表示されません。
また、値が大きい側の表示はこの方法ではグラフの角に表示するのが難しいので別の方法を探しています。
グラフの表示範囲を変えても角にそのテキストが表示できることが理想的です。
適切な方法はありませんか。よろしくお願いいたします。
  3 个评论
Dai
Dai 2022-8-4
ご回答ありがとうございます。
Atsushi Uenoさんの回答を受けて更に検討していますが、思い通りの表示はできておりません。
交感神経優位なあかべぇ
>グラフの表示範囲を変えても角にそのテキストが表示できることが理想的です。
→ X, Y, ZのAxisのLimitsChangedFcnを設定すれば、値の範囲が変わったときのコールバックが実行できますが、煩雑になりすぎてしまいますかね……。
Y軸方向だけの例をつくってみました。(もっと調整は必要かと思いますが……)
b = bar3([0 1 2 3;1 0 2 3;1 2 0 3]);
a = b.Parent;
t1 = text(a.XLim(1), a.YLim(1), a.ZLim(1), 'medial', 'HorizontalAlignment', 'right', 'VerticalAlignment','top');
t2 = text(a.XLim(1), a.YLim(2), a.ZLim(1), 'lateral', 'HorizontalAlignment', 'left', 'VerticalAlignment','top');
a.XAxis.LimitsChangedFcn = @(src, event) LimitsChange(a, t1, t2);
a.YAxis.LimitsChangedFcn = @(src, event) LimitsChange(a, t1, t2);
a.ZAxis.LimitsChangedFcn = @(src, event) LimitsChange(a, t1, t2);
function LimitsChange(a, t1, t2)
t1.Position = [a.XLim(1), a.YLim(1), a.ZLim(1)];
t2.Position = [a.XLim(1), a.YLim(2), a.ZLim(1)];
end

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 グラフィックス出力のターゲットの指定 的更多信息

产品


版本

R2022a

Community Treasure Hunt

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

Start Hunting!