2012-02-24 5 views
2

plotyyを使って2つのy軸を持つグラフを作るとき。プライマリy軸のティックがセカンダリy軸にも表示されるという問題があります。はplotyyで、右側のy軸のティックでは左側のy軸のティックが重なります。どのように私はこの重複を削除するのですか?私は右y軸に見られるy軸目盛りを残したい。

set(AX(1),'box','off') 

またあなたは、両方のY軸上の目盛りの同じ数を設定することができます:ここ は、最も簡単な方法は、左(第一)のためboxプロパティを設定することで、コード

clear all; 
clc; 
load ('bval_time.txt'); 
load ('loadtime.txt'); 
load ('timeload.txt'); 
load1 =loadtime(:,1); 
time1 =timeload(:,1); 
time = bval_time(:,1); 
B_value = bval_time(:,2); 
[AX,H1,H2]=plotyy(time1,load1,time,B_value,'plot'); 
title('Load-bvalue-Time variation graph-150grp'); 
legend('Load','B_value',1); 
xlabel('Time(sec)') 
set(get(AX(1),'Ylabel'),'String','Load(KN)') 
set(get(AX(2),'Ylabel'),'String','b-value') 
set(H1,'LineStyle','-') 
set(H2,'LineStyle','-','marker','*') 
set(AX(1), 'ylim', [0 15]) 
set(AX(2), 'ylim', [0 2]) 
set(AX(1),'YTick',[0:1:15]) 
set(AX(2),'YTick',[0:0.2:2]) 
+1

すべての.txtファイルを必要とせずに問題を再現するコードを表示できますか? –

答えて

2

offに軸であります。次の2つの方法でそれを行うことができます間

1)変更距離が

set(AX(1),'YTick',[0:15]) 
set(AX(2),'YTick',linspace(0,2,16)) 

2を刻み)変更軸は、私はちょうど同じ問題に遭遇した

set(AX(1), 'ylim', [0 15]) 
set(ax(2), 'ylim', [0 3]) 
set(ax(1),'YTick',0:15) 
set(ax(2),'YTick',0:0.2:3) 
1

を制限します。私は右のy軸ダニを再定義しましたが、プロットの周りにボックスを残したかったのです。

解決策は、plotyyによって作成されたものの上に新しいaxesを追加し、このaxesのボックスを「オン」に設定することです。ただし、このボックスに正しいxチックがあり、左右のy軸の色がマスクされていないことを確認する必要があります。ここで

は、問題を示してプロット例である:

x = 1:10; 
y = x.^2; 
AX = plotyy(x,y,x,y*3) 
set(AX(2),'YTick',0:90:400) 

は右に余分な目盛りに注意してください。ソリューション:

set(AX(1),'box','off') 
set(AX(2),'box','off') 
% create a new axes on top of old ones 
new_AX = axes('Position',get(AX(1),'Position'),'XLim',get(AX(1),'XLim'),'YTick',[]); 
set(new_AX,'box', 'on') 
% reorder things to make y-axes and box visible at the same time 
uistack(AX(1),'top') 
uistack(AX(2),'top') 
set(AX(1),'Color','None') 

注:ズームとパンは、この余分なaxesを作成した後、正常に動作しません。また、このコードをMatlab2011aでテストしましたが、Matlabの他のバージョンではうまく動作しない可能性があります。

関連する問題