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

54 次查看(过去 30 天)
yuya inatomi
yuya inatomi2018-1-29
评论: yuya inatomi ,2018-1-30
画像のように、y=x^2のグラフの上側に1/xの目盛を表示、 というようにしたいと思っています。 どのようにすれば可能ですか?

采纳的回答

mizuki
mizuki 2018-1-30
编辑:mizuki 2018-1-30
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 个评论
yuya inatomi
yuya inatomi 2018-1-30
ありがとうございました!

请先登录,再进行评论。

更多回答(0 个)

产品

Community Treasure Hunt

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

Start Hunting!