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

32 vues (au cours des 30 derniers jours)
yuya inatomi
yuya inatomi le 29 Jan 2018
Commenté : yuya inatomi le 30 Jan 2018
画像のように、y=x^2のグラフの上側に1/xの目盛を表示、 というようにしたいと思っています。 どのようにすれば可能ですか?

Réponse acceptée

mizuki
mizuki le 30 Jan 2018
Modifié(e) : mizuki le 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 commentaire
yuya inatomi
yuya inatomi le 30 Jan 2018
ありがとうございました!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur 座標軸の外観 dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!