0

問題

ハイチャートの棒グラフで複数のユーザーを表示するシリーズが 1 つしかない場合、隣同士ではなく重ねて表示されます。以下は、使用しているコードです。私を正しい方向に導いてください。

また、ユーザーのシリーズにもう 1 つの日付を追加すると、正しく表示されますが、グラフには常に 1 つの日付が表示されるため、これは解決策ではありません。

JS フィドル リンク: http://jsfiddle.net/bhats1989/b33mN/3/

コード

$(function () {
                           $('#team_container').highcharts({
                chart: {
                    type: 'bar',
                    //inverted: true,
                    renderTo: 'container',
                    zoomType: 'xy',
                    events: {
                    },
                    zIndex: 5
                },
                title: {
                    text: 'Team Activity Game',
                    x: -20 //center
                },
                subtitle: {
                     text: 'Click and drag in the plot area to zoom in and scroll',
                     x: -25 //center
                 },
                xAxis: {
                  title: {
                       text: 'Week Ending'
                      },
                    type: 'datetime',
                    maxZoom: 24 * 3600000, // Two days
                    labels: {
                         rotation: -45,
                         align: 'right',
                         formatter: function() {
                           return Highcharts.dateFormat('%d/%m/%Y', this.value);
                         }
                     },
                    tickInterval: 24 * 3600 * 1000,
                },
                plotOptions: {
                    series: {
                        events: {
                          legendItemClick: function(event) {
                            if (!this.visible)
                                return true;

                            var seriesIndex = this.index;
                            var series = this.chart.series;
                            var j = series.length;
                            for (var i = 0; i < series.length; i++)
                            {
                                if (series[i].index != seriesIndex)
                                {
                                  series[i].visible ? series[i].hide() : series[i].show();
                                  series[j-1].hide();
                                } 
                            }

                            return false;
                          }
                        }
                    }
                  },
                yAxis: {
                plotBands: [{ // mark the weekend
                    color: '#f4e3e7',
                    from: 0,
                    to: 15,
                    events: {
                        mouseover: function(e) {                            
                           team_tooltipUpdate();
                        }
                    },
                    zIndex: 3
                  }],
                   gridLineColor: null,
                  title: {
                      text: 'Distance (kms)'
                     },
                     plotLines: [{
                     color: '#FF0000',
                     width: 2,
                     value: 15                  }]
                },
                tooltip: {
                    useHTML: true,
                    formatter: team_myFormatter
                },
                legend: {
                    layout: 'vertical',
                    align: 'right',
                    verticalAlign: 'top',
                    x: -10,
                    y: 100,
                    borderWidth: 0
                },
                series: [
                                                 {
                         name: 'Mark',
                         data: []
                         },                                              {
                         name: 'Joe',
                         data: [[Date.parse('7/28/2013 UTC'), 7.2954706108315 ]]
                         },                                              {
                         name: 'Max',
                         data: [[Date.parse('7/28/2013 UTC'), 25.668099736872 ]]
                         },                                              {
                         name: 'John',
                         data: [[Date.parse('7/28/2013 UTC'), 16.576099736872 ]]
                         }                                               ,{
                        name: 'yellowline',
                        visible: false,
                        showInLegend: false,
                        data: []
                         }

                    ]
               });

                          });
            function team_tooltipUpdate(){          
              var chart = $('#team_container').highcharts();
              chart.tooltip.refresh(chart.series[4].points[0]);     
            }
            function team_myFormatter(){
                var game_parameter = 'running';

                if(this.series.name == 'yellowline'){
                   return '<span style="color:Red;"><b>Danger Area</b></div>';
                }else{
                    if(game_parameter == 'running'){
                        return '<span style="color:'+ this.series.color + '"><b>'+ this.series.name +'</b><br/>'+
                        Highcharts.dateFormat('%d\/%m\/%Y', this.x) +': '+ parseFloat(this.y).toFixed(2) +' kms</span>';
                    }else if(game_parameter == 'steps'){
                        return '<span style="color:'+ this.series.color + '"><b>'+ this.series.name +'</b><br/>'+
                        Highcharts.dateFormat('%d\/%m\/%Y', this.x) +', No. of Steps: '+ parseFloat(this.y).toFixed(2) +'</span>';
                    }else if(game_parameter == 'floors'){
                        return '<span style="color:'+ this.series.color + '"><b>'+ this.series.name +'</b><br/>'+
                        Highcharts.dateFormat('%d\/%m\/%Y', this.x) +', No. of Floors: '+ parseFloat(this.y).toFixed(2) +'</span>';
                    }else if(game_parameter == 'cycling'){
                        return '<span style="color:'+ this.series.color + '"><b>'+ this.series.name +'</b><br/>'+
                        Highcharts.dateFormat('%d\/%m\/%Y', this.x) +': '+ parseFloat(this.y).toFixed(2) +' kms</span>';
                    }else if(game_parameter == 'heartrate'){
                        return '<span style="color:'+ this.series.color + '"><b>'+ this.series.name +'</b><br/>'+
                        Highcharts.dateFormat('%d\/%m\/%Y', this.x) +': '+ parseFloat(this.y).toFixed(2) +' BPM</span>';
                    }                
                }
            }
4

3 に答える 3

1

問題は、Highcharts が 1 つのポイントでどのシリーズの pointRange も計算できないことです。その場合pointRange、シリーズに直接設定するには、http: //jsfiddle.net/b33mN/5/を参照してください。

例では、pointRange = tickInterval を実現したいと考えています。

于 2013-07-25T09:58:39.750 に答える