x軸2つ、y軸1つの​グラフを作るにはどう​すればいいですか?

34 Ansichten (letzte 30 Tage)
yuya inatomi
yuya inatomi am 29 Jan. 2018
Kommentiert: yuya inatomi am 30 Jan. 2018
画像のように、y=x^2のグラフの上側に1/xの目盛を表示、 というようにしたいと思っています。 どのようにすれば可能ですか?

Akzeptierte Antwort

mizuki
mizuki am 30 Jan. 2018
Bearbeitet: mizuki am 30 Jan. 2018
File Exchange に plotxx という関数がありますので、こちらを使うのが簡単かと思います。
このコードを使用しない場合には、 ax1 ax2 の二つの軸を重ねてみてはどうでしょうか。
figure
x1 = 0:0.1:1;
y1 = x1.^2*25/27 + x1*5/54 - 1/54;
line(x1,y1,'Color','r')
ax1 = gca;
ax1_pos = ax1.Position;
ax2 = axes('Position',ax1_pos,...
'XAxisLocation','top',...
'YTick', [], 'YTickLabel', {''}, ...
'XTickLabelMode', 'manual', 'XTickMode', 'manual', ...
'XTick', [0.2 0.5 1], 'XTickLabel', {'5','2','1'}, ...
'Color','none');
ここで ax2 Color プロパティを none にすることで、背景を透明にして ax1 を見えるようにしています。
上記の方法では、top にあるx軸のラベルが固定 ( XTick XTickLabel で設定) ですが、もしいろいろな 1/x を表示したい場合には、式のまま XTickLabel として定義すればよいかと思います。
% ラベルの作成
x_Tlabel = cell2mat(cellfun(@str2num, ax1.XTickLabel, 'UniformOutput', false));
ax2 = axes('Position',ax1_pos,...
'XAxisLocation','top',...
'YTick', [], 'YTickLabel', {''}, ...
'XTickLabelMode', 'manual', 'XTickMode', 'manual', ...
'XTick', x_Tlabel(2:end), 'XTickLabel',cellstr(num2str(1./x_Tlabel(2:end))), ...
'Color','none');
  1 Kommentar
yuya inatomi
yuya inatomi am 30 Jan. 2018
ありがとうございました!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu 座標軸の外観 finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!