軸の両端にテキストを追加したいです
2 次查看(过去 30 天)
显示 更早的评论
画像のような図を作成した際に、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 个评论
交感神経優位なあかべぇ
2022-8-25
>グラフの表示範囲を変えても角にそのテキストが表示できることが理想的です。
→ 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 Center 和 File Exchange 中查找有关 グラフィックス出力のターゲットの指定 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!