Highchart-afficher / cacher un axe des y sans cacher la série

je travaille avec Highchart. J'ai plusieurs séries graphe dans lequel chaque série ont leur propre axe des ordonnées.

un peu comme celui-ci (jsfiddle)

quand on clique sur la légende d'une série, elle la cache et l'axe des y associé (en utilisant showEmpty:false a aidé à cacher aussi le nom de l'axe)

ce que j'essaie de réaliser c'est cacher l'axe y d'une série donnée sans cacher la série elle-même.

j'ai essayé de le cacher en modifiant la propriété showAxis comme ceci:

serie.yAxis.showAxis = false;

mais ça ne fonctionne pas. Quelqu'un sait comment je dois faire ?

EDIT: j'ai réussi à modifier le texte pour que je puisse supprimer le titre de l'axe en définissant le texte à nul mais ce n'est pas suffisant pour cacher l'axe entier et ses valeurs.

voici ce que j'ai fait pour modifier le texte:

serie.yAxis.axisTitle.attr({
            text: null
        });
22
demandé sur Guian 2013-03-07 21:08:11

2 réponses

Highcharts 4.1.9+

Depuis 4.1.9, il y a une option l'Axe.visible qui peut être utilisé pour afficher/masquer un axe, la démo: http://jsfiddle.net/3sembmfo/36/

versions plus anciennes de Highcharts

c'est une nouvelle fonctionnalité pour Highcharts 3.0 - qui permet de mettre à jour les axes en temps réel: chart.yAxis[0].update(object) - comme objet prend les mêmes options que pour la création graphique. Par exemple:

        chart.yAxis[0].update({
            labels: {
                enabled: false
            },
            title: {
                text: null
            }
        });

Et jsFiddle: http://jsfiddle.net/39xBU/2/

EDIT:

utilisez ci-dessous snippet pour masquer/afficher axis en appelant juste axis.hide() et axis.show(). Démonstration en direct: http://jsfiddle.net/39xBU/183/

(function (HC) {
    var UNDEFINED;
    HC.wrap(HC.Axis.prototype, 'render', function (p) {
        if (typeof this.visible === 'undefined') {
            this.visible = true;
        }
        if(this.visible) {
            this.min = this.prevMin || this.min;
            this.max = this.prevMax || this.max;
        } else {
            this.prevMin = this.min;
            this.prevMax = this.max;
            this.min = UNDEFINED;
            this.max = UNDEFINED;
        }

        this.hasData = this.visible;

        p.call(this);
    });

    HC.Axis.prototype.hide = function () {
        this.visible = false;
        this.render();

        HC.each(this.plotLinesAndBands, function (plotLine) {
            plotLine.render();
        });
    };

    HC.Axis.prototype.show = function () {
        this.visible = true;
        this.render();

        HC.each(this.plotLinesAndBands, function (plotLine) {
            plotLine.render();
        });
    };
})(Highcharts);
47
répondu Paweł Fus 2016-11-24 12:44:29

nous pouvons cacher l'étiquette de Yaxis sans cacher L'axe des y sans cacher la série en retournant la chaîne vide comme suit:

yAxis: {
       title: '',
       labels: {
                formatter: function() {
                    return '';
                },
                style: {
                    color: '#4572A7'
                }
        }

},

0
répondu Jagadeesh 2018-08-30 10:21:23