2013-11-03 2 views
3

지정된 너비의 막대가있는 막대 그림을 만들고 싶습니다. 나는 많은 시도를했지만 지금까지 아무 것도 나를 위해 일하지 못했습니다.지정된 간격 폭의 바 plot 막대

x의 각 요소는 간격의 중심입니다. 각 막대의 중심이 그 위치에 있도록하고 싶습니다.이 막대의 너비는 간격의 길이와 일치해야합니다. y에는 각 막대의 높이가 있습니다. 내 목표는 다양한 폭의 막대가있는 막대 그림을 얻는 것입니다.

% inter contains the limits of my intervals 
inter = [-32.6;-31.3;-20.3;-19.0;-15.4;-14.1;-11.7;-10.4;-8.8]; 

x = [ -31.6000; -19.8000; -17.4000; -13.1500; -10.5000; -8.8000]; 
y = [ 2.3529; 1.0417; 1.3158; 1.5337; 2.5000; 1.0152]; 

% trying to create the bar plot, however, all widths are the same: 
bar(x,y); 

답변

3

각이 자신을 바 그릴 위해 patch를 사용할 수 있습니다. 왼쪽에 inter(k)을 사용하고 각 막대의 오른쪽 가장자리에 inter(k + 1)을 사용할 수 있으며 이미 알고있는 높이는 y(k)입니다.

figure; 
for k = 1 : length(y) 
    xl = inter(k); 
    xr = inter(k + 1); 
    patch([xr, xr, xl, xl], [0, y(k), y(k) 0], 'b'); 
end 

벡터가 필요하지 않습니다. x.

+0

+1 또한 'patch'줄을'bar ((xl + xr)/2, y (k), xr-xl)'로 대체하고,'figure '다음에'hold on '을 추가 할 수 있습니다. –

+0

당신은 최고의 그리고 당신은 그냥 내 논문을 저장! 고맙습니다!! –

관련 문제