2012-04-19 4 views
2

Minor grid with solid lines & grey-color에 설명 된대로 이전 질문을 검토했지만 문제를 해결하지 못했습니다. 내 문제는 xticks가 수반됩니다. 내 그리드 선을 xaxis의 특정 점과 다른 여러 그리드 선에서 다른 색상으로 다른 점에 나타나게하고 싶습니다. 다음과 같은 내용 :한 축에 다른 색상의 Matlab 그리드 선

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

두 번째 축을 생성하십시오.

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

??? ==> 사용하여 오류가 발생했습니다 셀에서 이중으로 변환 할 수 없습니다 (마지막 세트 문). 나는 xece에서 10e3 ~ 80e3의 범위에서 값을 가지므로 cell2mat를 사용하여 시도했지만 작동하지 않는 것 같습니다. – mirage

+0

예제를 복사하여 붙여 넣으면 예제가 작동합니까? get (ax1, 'xlim')은 무엇을 반환합니까? – Chris

+0

당신의 예제는 잘 작동하지만 .. 내 코드에서 사용할 때 10e3에서 80e3까지의 범위에있는 xaxis로 인한 오류를 묻습니다. – mirage