Je dessine un graphique linéaire avec des points de données mensuels. Cependant, je veux que l'échelle affiche uniquement les chaînes de l'année. Jusqu'à présent, si facile. Cependant, pour autant que je puisse voir, les Highcharts dessinent toujours les étiquettes xAxis par rapport aux ticks ... et je dois les afficher centrées entre les ticks. Y a-t-il un moyen simple de faire cela que j'ai manqué, s'il vous plaît ...?Images actives: étiquettes annuelles xAxis centrées entre les graduations
Répondre
Il existe plusieurs options xAxis qui peuvent vous aider à faire ce que vous voulez.
http://api.highcharts.com/highcharts#xAxis.labels
Jetez un oeil à « aligner » qui indique si les étiquettes sont à gauche ou à droite de la tique, et aussi « x » qui vous permet de spécifier un décalage x pour l'étiquette de la cocher.
Avez-vous essayé d'utiliser le placement de tiques? http://api.highcharts.com/highcharts#xAxis.tickmarkPlacement
"Pour les axes catégorisés seulement", malheureusement ... – user1617662
Selon ma compréhension, le comportement que vous désirez est:
http://jsfiddle.net/msjaiswal/U45Sr/2/
Laissez-moi de briser la solution:
1. Données mensuelles Points
Un point de données correspondant à un mois:
var data = [
[Date.UTC(2003,1),0.872],
[Date.UTC(2003,2),0.8714],
[Date.UTC(2003,3),0.8638],
[Date.UTC(2003,4),0.8567],
[Date.UTC(2003,5),0.8536],
[Date.UTC(2003,6),0.8564],
..
]
2. échelle pour afficher uniquement les tiques annuelle
Utilisez les options de tableau comme celui-ci:
xAxis: {
minRange : 30 * 24 * 3600 * 1000, //
minTickInterval: 12* 30 * 24 * 3600 * 1000 // An year
},
Le problème est que l'étiquette de l'année est sous le "Janvier", et c'est pas dans le centre de l'année. – mirelon
Cela peut être fait avec une solution de contournement en ajustant manuellement le positionnement de l'étiquette par un rappel (appelé à la fois la charge et redessiner). S'il vous plaît voir le violon lié à dans mon commentaire sur ce post: Highcharts - how can I center labels on a datetime x-axis?
Il n'y a pas de solution simple, prêt à l'emploi. Vous devez utiliser des événements et repositionner les étiquettes en conséquence. Voici une solution d'échantillon qui fonctionne également lors du redimensionnement de la fenêtre du navigateur (ou autrement forcer le graphique à redessiner), même lorsque les changements de nombre de tics: http://jsfiddle.net/McNetic/eyyom2qg/3/
Il fonctionne en attachant le même gestionnaire d'événements à la fois la load
et redraw
événements:
$('#container').highcharts({
chart: {
events: {
load: fixLabels,
redraw: fixLabels
}
},
[...]
Le gestionnaire lui-même ressemble à ceci:
var fixLabels = function() {
var labels = $('div.highcharts-xaxis-labels span', this.container).sort(function(a, b) {
return +parseInt($(a).css('left')) - +parseInt($(b).css('left'));
});
labels.css('margin-left',
(parseInt($(labels.get(1)).css('left')) - parseInt($(labels.get(0)).css('left')))/2
);
$(labels.get(this.xAxis[0].tickPositions.length - 1)).remove();
};
Fondamentalement, cela fonctionne comme ceci:
- Récupère toutes les étiquettes existantes (lorsqu'elles sont redessinées, cela inclut les nouvelles ajoutées). 2. Trier par la propriété css 'left' (ils ne sont pas triés de cette manière après un nouveau dessin)
- Calculer le décalage entre les deux premières étiquettes (le décalage est le même pour toutes les étiquettes)
- Définir la moitié du décalage en tant que marge -lors de toutes les étiquettes, en les décalant efficacement de la moitié du décalage vers la droite.
- Retirer l'étiquette la plus à droite (déplacée à l'extérieur de la carte, parfois partiellement visible).
- 1. Les graduations de xaxis de flot dépassent le nombre spécifié
- 2. Les images centrées sont floues
- 3. positionnement des étiquettes xaxis flot
- 4. HighCharts - affiche les dernières étiquettes dans xAxis
- 5. CorePlot XAxis Les étiquettes ne s'affichent pas
- 6. R égler la distance entre les graduations de l'axe et les graduations
- 7. Tracé principal, étiquettes personnalisées et graduations
- 8. Images actives, Afficher une coche spécifique sur un type xaxis datetime
- 9. Comment formater des étiquettes xAxis Graphiques iOS
- 10. Déplacement des étiquettes xaxis dans le flot
- 11. Supprimer la zone entre l'axe x et les graduations x
- 12. Tracé principal - Désactiver les étiquettes d'axe pour certaines graduations
- 13. Images actives: setSize sur chaque graphique multiple
- 14. HighCharts - Besoin de plus d'espace entre le bas du graphique et les étiquettes Xaxis
- 15. Avoir des images centrées dans des colonnes
- 16. Images actives: étiquettes à l'intérieur de la barre de largeur de colonne
- 17. Les images de la galerie principale ne sont pas centrées
- 18. ajouter des graduations d'axe et des étiquettes dans ggplot2 r
- 19. Comment utiliser les images pour les liaisons actives et stationnaires?
- 20. Tracé principal: Initialement, les étiquettes d'axe ne sont pas sur les principales graduations
- 21. Primefaces BarChart XAXIS Tick étiquettes modifiées après rotation
- 22. Conserver les discussions et les vues actives entre les activités
- 23. trouver tout entre les étiquettes
- 24. NVD3 - Le positionnement des étiquettes xAxis ne fonctionne pas
- 25. Asp.net Chart ligne Radar - Aucun des étiquettes XAXIS montrent des
- 26. Comment ajouter du fond aux étiquettes MPAndroidCharts xAxis?
- 27. comment: limite XAXIS étiquettes Highcharts pour éviter le chevauchement
- 28. Images actives, zoom dans la barre de navigation inférieure
- 29. Images actives - Masquer les sous-titres à l'exportation
- 30. Conserver les images non actives vers le haut
Je le fais déjà. Les données, cependant, sont dynamiques et comme les écarts entre les tiques s'élargissent, les étiquettes semblent de plus en plus invraisemblables collées aux tiques ... Je ne sais pas si je peux me procurer le nombre de ticks, pour que je puisse calculer la distance entre eux et définir le décalage x des étiquettes alignées au centre à la volée ... – user1617662