0

基本的には、カスタム バー幅 (pointWidth) で pointPadding を同時に使用したいと考えています。しかし、私はできません、ここに私の問題があります:

グループ化されたグラフを表示するときに、1 つのグループのバーにパディングのないグラフが必要です。この目的のために、私は pointPadding: "0" を使用しました。これにより、正確に正しいチャートが表示されます。お気に入り:

 if(chart_json.chart.defaultSeriesType=='column'){
          if(chart_json.xAxis.categories.length >= 1 ){

        chart_json.plotOptions.column.groupPadding = "0.05";
          chart_json.plotOptions.column.pointPadding = "0.00";

          }  
      }

      var chart=new Highcharts.Chart(chart_json,startupObj.startupFunction);
      chartObjArray.push(chart);

しかし、カスタム幅を設定すると、1 つのグループのバーの間にスペースが追加されます。

実際にはバーの幅に最大値と最小値を設定したいのですが、Highchart ライブラリからのサポートが見つかりません。したがって、この目的のために、ハイチャートがチャートを生成するときに、生成されたチャートバーの幅が最大制限を超える場合、それを最大制限に設定し、下限にも同じように設定します。

 if(chart_json.chart.defaultSeriesType=='column'){
          if(chart_json.xAxis.categories.length >= 1 ){

              chart_json.plotOptions.column.groupPadding = "0.05";
              chart_json.plotOptions.column.pointPadding = "0.00";

          }  
      }

      var chart=new Highcharts.Chart(chart_json,startupObj.startupFunction);
      chartObjArray.push(chart);

    //set bar width
    if(chart_json.chart.defaultSeriesType=='column' || chart_json.chart.defaultSeriesType=='bar'){
        setChartBarMaxMinWidth(chart,chart_json);
    }

setChartContainerWidth(chart_json,chart);

//// * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** ////////// /////////

function setChartBarMaxMinWidth(chart,json){

var maximumBarWidth=70;
var minimumBarWidth=15;

chart_json=eval('('+json.chart_json+')');

for(var j=0;j<chart.series.length;j++){
    var series=chart.series[j];
    if (series.data[0].pointWidth  >  maximumBarWidth) {
        chart.series[j].options.pointWidth = maximumBarWidth;
        isMaxMin='MAX';
    }

    if (series.data[0].pointWidth  <  minimumBarWidth) {
        chart.series[j].options.pointWidth = minimumBarWidth;
        isMaxMin='MIN';
    }

};

function setChartContainerWidth(chartOptions,chart){  
          // calculate # of bars
          var numberOfBars=seriesGroupLength*categoriesLength;
          // calculate container width
          // var containerWidth=numberOfBars*43;

          // get chart bar width


          var containerWidth=numberOfBars*barWidth;


          chart.setSize($(container).width(),$(container).height());

};

setChartContainerWidth() では、highchart setSize() メソッドを使用してチャートのサイズを変更しました。

誰かが 1 つのグループのバー間のスペースを削除するのを手伝ってくれてありがとう。

ありがとう

4

1 に答える 1