2013-10-16 4 views
5

J'ai un problème avec les colonnes de chevauchement des étiquettes de données dans mon diagramme.Les étiquettes de données Highcharts chevauchent les colonnes

$('#container').highcharts({ 
     chart: { 
      type: 'column' 
     }, 

     xAxis: { 
      type: 'datetime' 
     }, 
     series: [{ 
      data: [[Date.UTC(2013, 3, 1, 0, 0, 0), 169], 
        [Date.UTC(2013, 4, 1, 0, 0, 0), 176], 
        [Date.UTC(2013, 5, 1, 0, 0, 0), 470], 
        [Date.UTC(2013, 6, 1, 0, 0, 0), 346], 
        [Date.UTC(2013, 7, 1, 0, 0, 0), 252], 
        [Date.UTC(2013, 8, 1, 0, 0, 0), 138]], 
      dataLabels: { 
       enabled: true 
      } 
     }] 
    }); 
}); 

Vous pouvez voir un exmaple ici: http://jsfiddle.net/J6WvR/1/

Mon tableau doit avoir une hauteur fixe et je ne comprends pas pourquoi la plus grande hauteur de la colonne ne peut être calculé pour adapter son étiquette de données. Comment puis-je réparer cela?

+0

Est-il nécessaire d'avoir une hauteur fixe? bcoz si vous supprimez la hauteur du conteneur, cela devrait fonctionner. – nik

Répondre

13

Selon la documentation API officielle: overflow property

Pour afficher les étiquettes de données en dehors de la zone de la parcelle, culture mis à faux et trop-plein de « aucun ».

  dataLabels: { 
       enabled: true, 
       crop: false, 
       overflow: 'none' 
      } 
+0

Bon endroit dans la documentation là-bas. – SteveP

+0

A travaillé comme un charme !!! –

0

Une option consiste à déplacer la position des étiquettes. par exemple. ce qui les déplacent à l'intérieur des barres:

plotOptions: { 
     column: { 
      dataLabels: { 
       y: 20, 
       color:'white' 
      } 
     } 
    }, 

http://jsfiddle.net/TBfLS/

Une alternative consiste à régler manuellement la valeur de max y pour faire de la place pour l'étiquette:

yAxis: { 
     max: 600, 
     endOnTick: false 
    }, 

http://jsfiddle.net/2AhVT/

Si tout va bien l'une de ces options aidera.

Une troisième option (et probablement meilleure) a été postée par Ivan Chau.

0

vous pouvez max pour axeY,

calculer la valeur maximale de vos données et ajouter un certain coussin dire 100 et le définir comme maximum pour axeY

yAxis:{ 
       max: 600, 
      }, 

mise à jour de votre violon avec max pour axeY à http://jsfiddle.net/J6WvR/3/

espère que cela sera utile pour vous

Questions connexes