2016-05-16 3 views
2

J'ai créé un graphique à bulles dans Highcharts comme suit:Highcharts - BubbleChart - ajouter un rembourrage en haut et en bas de la parcelle

jsFiddle

Comme vous pouvez le voir le « bulles » pour les données « 0 » et les données '7' sont coupés.

Est-il possible d'ajouter un rembourrage en haut et en bas pour en tenir compte?

Je sais que l'extension de la plage de l'axe à -1 -> 8 triera ceci mais je préfère ne pas le faire de cette façon

Voici le code:

$(function() { 

    var data = [{ x: 0, y: 1, z: 1, dataSeries: 'data #1', dataPerc: '1.2' }, 
       { x: 1, y: 2, z: 2, dataSeries: 'data #2', dataPerc: '2.2' }, 
       { x: 2, y: 0, z: 0, dataSeries: 'data #3', dataPerc: '19.2' }, 
       { x: 3, y: 7, z: 7, dataSeries: 'data #4', dataPerc: '12.0' }, 
       { x: 4, y: 5, z: 5, dataSeries: 'data #5', dataPerc: '24' }, 
       { x: 5, y: 4, z: 4, dataSeries: 'data #6', dataPerc: '12' }, 
       { x: 6, y: 3, z: 3, dataSeries: 'data #7', dataPerc: '15.3' }, 
       { x: 7, y: 3, z: 3, dataSeries: 'data #8', dataPerc: '1.2' }];   

    $('#container').highcharts({ 

     chart: { 
      type: 'bubble', 
      plotBorderWidth: 1, 
      zoomType: 'xy' 
     }, 
      credits: false, 

     legend: { 
      enabled: false 
     }, 

     title: { 
      text: '' 
     }, 

     xAxis: { 
      gridLineWidth: 1, 
      title: { 
       text: '' 
      }, 
      categories: ['data #1', 'data #2', 'data #3', 'data #4', 'data #5', 'data #6', 'data#7', 'data #8'] 
     }, 

     yAxis: { 
      startOnTick: true, 
      min: 0, 
      max: 7, 
      title: { 
       text: 'Score' 
      }, 
      labels: { 
       format: '{value}' 
      }, 
      maxPadding: 0.2 
     }, 

     tooltip: { 
      useHTML: true, 
      headerFormat: '<table>', 
      pointFormat: '<tr><th colspan="2"><h3>{point.dataSeries}</h3></th></tr>' + 
       '<tr><th>Score:</th><td>{point.y}</td></tr>' + 
       '<tr><th>Percentage:</th><td>{point.dataPerc}%</td></tr>', 
      footerFormat: '</table>', 
      followPointer: true 
     }, 

     plotOptions: { 
      series: { 
       dataLabels: { 
        enabled: true, 
        format: '{point.name}' 
       } 
      } 
     }, 
     series: [{ data: data }] 
    }); 
}); 

Répondre

2

je suis tombé sur la réponse à cela dans une recherche Google: http://www.java2s.com/Tutorials/highcharts/Example/Axis_Label/Hide_axis_first_label.htm.

Cet exemple de code montre attributs appelés showFirstLabel et showLastLabel que vous pouvez utiliser soit dans le xAxis ou yAxis. Ceux-ci devraient accomplir ce que vous voulez en ajoutant l'espace supplémentaire pour les bulles en augmentant la portée de votre yAxis (à -1 à 8), mais ne montrant pas ces étiquettes supplémentaires, comme vous l'avez demandé dans votre question.

Voici où je les ai appliqué dans les options de tableau ...

yAxis: { 
     startOnTick: true, 
     min: -1, 
     max: 8, 
     showFirstLabel: false, 
     showLastLabel: false, 
     title: { 
      text: 'Score' 
     }, 
     labels: { 
      format: '{value}' 
     }, 
     maxPadding: 0.2 
    }, 

... et voici le résultat:

enter image description here

Vous pouvez consulter une version mise à jour de votre violon ici: http://jsfiddle.net/brightmatrix/svcuLgso/7/

J'espère que cela aide!

+0

Genius - Merci :) –