2014-11-11 2 views
0

막대 차트가 있습니다. 그것은 25 개의 막대가 모두 다른 범주를 나타냅니다. 차트는 괜찮지 만 몇 가지 범주 만 인쇄합니다.막 대형 차트 표시 모든 내열 장치

아래 줄을 사용하여 x_labels에 지정된 25 개의 범주를 모두 표시한다고 생각했습니다.

set(gca,'XtickL',x_labels); 

rotateXLabel 메서드를 사용하고 레이블을 90도 회전하여 서로 쓰기가 끝나지 않도록합니다. 그러나 여전히 일부 범주 만 표시합니다. 어떻게 모두 표시 할 수 있습니까?

갱신 여기

내 데이터,

'Health Care' 4.72629799981083 
'Capital Goods' 4.09458147368759 
'Transp' 3.98149295925542 
'Media' 1.79439005788530 
'Insurance' 1.69956150439052 
'Commer Serv' 1.39773924375053 
'Food & Staples' 1.37870312358688 
'Tech Hardw' 1.14006008338028 
'Div Finan' 1.07437424540054 
'Retailing' 0.799227696500581 
'Cons Durab' 0.484704646767555 
'Semiconduct' -0.0668927175281457 
'Cons Serv' -0.0994263844790881 
'Software' -1.13770277184728 
'Auto&Comp' -1.14193637823934 
'Materials' -1.52052729345776 
'Real Estate' -1.58166267932780 
'HH & Prod' -1.68076878183555 
'Food Bever' -1.73283367572542 
'Pharma' -1.90119783888618 
'Telecom' -2.04480219189470 
'Utilities' -2.20510498991084 
'Energy' -2.36405808621777 
'Banks' -5.09421924506606 

다른 갱신

솔루션 here 발견. 그것의 100 % 완벽하지는 않지만 내 레이블의 일부가 너무 길어서 차트가 그들을 잘라 버린다. 당신은?

value 무엇을 찾고 그 문제

[pp,h1,h2]=plotyy((1:length(risk_tot)),risk_tot,(1:length(risk_tot)),risk_cont,'bar','stem'); 
xData = get(h1,'XData'); 
set(gca,'Xtick',linspace(xData(1),xData(end),length(x_labels(:, 1)))); 
+1

재현 가능한 예를 제공해 주시겠습니까? – Arpi

답변

1

라운드 얻는 방법 일이되어 필요로 제공된 값
label 벡터 제공된 문자열이있는 셀입니다

bar(value); 
set(gca, 'XTick', 1:length(value)) 
set(gca, 'XTickLabel', label) 
grid on 
rotateXLabels(gca(), 90) 

enter image description here

+0

네, 그게 내가 한 것입니다. 차트에 다른 시리즈가 있기 때문에 나는 plotyy를 사용하고 있습니다. bar보다는 plotyy를 사용하면 내 라벨이 잘리는 것과 관련이 있는지 궁금합니다. – mHelpMe