2017-12-05 13 views
0

Highcharts를 사용하여 음의 축 막대 그래프를 만들었지 만, 원하는대로 형식이 나타나지 않습니다. 표시된대로 형식을 조작 할 수 없습니다.하이 차트에서 음수 축 막대 그래프를 수정하는 방법?

아래에 언급 된 코드에 대한 내 출력이 첨부됩니다. http://jsfiddle.net/00bh7yp7/2/

// Age categories 
var categories = [ 
     '0-4', '5-9', '10-14', '15-19', 
     '20-24', '25-29', '30-34', '35-39', '40-44', 
     '45-49', '50-54', '55-59', '60-64', '65-69', 
     '70-74', '75-79', '80-84', '85-89', '90-94', 
     '95-99', '100 + ' ]; 

    Highcharts.chart('container', { 
     chart: { 
      type: 'bar' 
     }, 
     title: { 
      text: 'Population pyramid for Germany, 2015' 
     }, 
     subtitle: { 
      text: 'Source: <a href="http://populationpyramid.net/germany/2015/">Population Pyramids of the World from 1950 to 2100</a>' 
     }, 
     xAxis: { 
      categories: categories, 
      reversed: false, 
      offset: 0, 
      labels: { 
       step: 1 
      }, 

     }, 
     yAxis: { 

      title: { 
       text: null 
      }, 
      labels: { 
       formatter: function() { 
        return Math.abs(this.value) + '%'; 
       } 
      } 
     }, 

     plotOptions: { 
      series: { 
       stacking: 'normal' 
      } 
     }, 

     tooltip: { 
      formatter: function() { 
       return '<b>' + this.series.name + ', age ' + this.point.category + '</b><br/>' + 
        'Population: ' + Highcharts.numberFormat(Math.abs(this.point.y), 0); 
      } 
     }, 

     series: [{ 
      name: 'Male', 
      data: [-2.2, -2.2, -2.3, -2.5, -2.7, -3.1, -3.2, 
       -3.0, -3.2, -4.3, -4.4, -3.6, -3.1, -2.4, 
       -2.5, -2.3, -1.2, -0.6, -0.2, -0.0, -0.0] 
     }, { 
      name: 'Female', 
      data: [2.1, 2.0, 2.2, 2.4, 2.6, 3.0, 3.1, 2.9, 
       3.1, 4.1, 4.3, 3.6, 3.4, 2.6, 2.9, 2.9, 
       1.8, 1.2, 0.6, 0.1, 0.0] 
     }] }); 

전류 출력 enter image description here

필요한 출력 enter image description here

범주 스케일이 두 그래프 사이에오고 우리가 관리 할 수 ​​있도록 그냥 형식을 찾고

더 나아. 도와주세요.

답변

1

(그들은 API에 설명하지 않은,하지만 작동) y는 축 두 가지를 사용하고 그 간격을 달성하고 leftwidth 속성을 위치하는 한 가지 방법 :

yAxis: [{ 
    left: '55%', 
    width: '45%' 
    (...) 
    }, { 
    reversed: true, 
    width: '45%', 
    offset: 0 
    (...) 
    }], 
    series: [{ 
    data: [1, 3] 
    }, { 
    data: [2, 5], 
    yAxis: 1 
    }] 

X 축입니다 유사하게 처리 :

xAxis: { 
    left: '50%', 
    (...) 
    } 

라이브 데모 :http://jsfiddle.net/kkulig/dx2vj8k1/

+0

좋아했습니다. 정말 재치가있는 해결책 :) –

+0

문제가 다시 발생했습니다. 이 그래프는 반응이 없습니다. 내가 창 부품으로 만들면 백분율 값을 window.innerHeight로 사용하지 않을 것입니다. –

+0

문제의 라이브 데모를 제공 할 수 있습니까? 필자가 준비한 그래프는 반응 형이지만 간소화 된 버전입니다 - 백분율을 사용합니다. 더 나은 접근법은 (chart.events.redner'에서) 픽셀을 계산하여 대신 사용하는 것입니다. 이렇게하면 일부 요소 (예 : 차트 너비가 매우 작을 때 데이터 라벨)가 겹치지 않도록 값을 만들 수 있습니다. –