2012-04-19 10 views
2

私はMinor grid with solid lines & grey-colorに記載されているように以前の質問を見直しましたが、私の問題解決には役立ちませんでした。私の問題はxticksに伴います。私は、x軸上の特定の点と他のいくつかのグリッド線上に、異なる色で異なる点で表示するようにグリッド線を表示します。このようなもの:Matlabグリッド線の色が1軸に異なる

plot(x,y,'--g') 
set(gca,'Xcolor',[0 0 0],'Xtick',[12e3,14e3,18e3,23e3,30e3,37e3,57e3], 
set(gca,'Xcolor',[0.5 0.9 0.5],'Xtick',[10e3 16 28e3]); 

問題は、後のxtickラベルが前のものを上書きすることです。私は以前のもののxlabelsを保持したいと思います。

答えて

2

第2軸を作成します。

x=-3.14:.1:3.14; 
y=sin(x); 

h=plot(x,y); 
ax1=findobj(gcf,'Type','axes'); %save first axis handle 

%set first stype 
set(gca,'Xcolor',[0 0 0],'Xtick',[-3,-2,-1,1,2,3],'gridlinestyle','-','xgrid','on') 

%create new axis 
ax2=axes('position',get(gca,'position'),'Visible', 'on'); 
set(ax2,'YTick',[],'Xcolor','blue','Xtick',[-2.5 0 2.5],'xgrid','on','color','none'); %color none to make the axis transparent 
set(ax2,'xlim',get(ax1,'xlim')) %resize 2nd axis to match 1st 

が生成されます

Example

+0

??? ==>使用時のエラー セルからダブルに変換することはできません(最後に設定されたステートメント)。私は10e3から80e3の範囲でxaxisの値を持っているので、cell2matを使用しようとしましたが、それも動作していないようです – mirage

+0

私の例をコピーして貼り付けると、 get(ax1、 'xlim')は何を返しますか? – Chris

+0

あなたの例は正常に動作しますが、私のコードで使用すると、10e3から80e3の範囲にあるxaxisのエラーが表示されます – mirage

関連する問題