6 Replies Latest reply: Apr 9, 2017 4:46 PM by Sébastien Fatoux RSS

    Couleur dégradée

    Maurice ludo

      Bonjour,

      Je cherche une fonction ou méthode pour coloré un tableau selon le pourcentage de chaque cellule.

      Ce-joint un Screenshots de ce que je cherche à mettre en place.

      Merci à vous

      Maurice 

        • Re: Couleur dégradée
          Sébastien Fatoux

          Tu peux utiliser les fonctions ColorMix1 ou ColorMix2.

          https://help.qlik.com/fr-FR/qlikview/12.1/Subsystems/Client/Content/ChartFunctions/ColorFunctions/color-functions-charts…

           

          Avec ColorMix1 tu spécifies une couleur de départ et une d'arrivÉric. Il va créer un dégradé entre ces 2 couleurs. Tu spécifie ensuite un index entre 0 et 1 que tu calcules en fonction de tes données. Il te retourne la couleur correspondante dans le dégrad.

           

          Avec ColorMix2, c'est la même logique mais tu as 3 couleurs et l'index varie de -1 à 1, 0 correspondant à la couleur central.

          Je pense que ColorMix2 correspond mieux à ton cas qui varie du rouge au vert en passant par le jaune.

           

          Un assistant est disponible dans l'éditeur d'expression :

          https://help.qlik.com/fr-FR/qlikview/12.1/Subsystems/Client/Content/Colormix_Wizard.htm

            • Re: Couleur dégradée
              Maurice ludo

              Je ne suis pas sur que je pourrais l'utiliser avec deux dimension, dans mon expression j'ai l'heure que varie.

                • Re: Couleur dégradée
                  Sébastien Fatoux

                  Si tu peux ;-)

                   

                  Si tu veux ça :

                  Community_1230514.png

                   

                  Nomme ton expression Valeur

                   

                  Et défini l'expression de ta couleur de fond ici:

                  Community_1230514_2.png

                  Avec l'expression suivante :

                   

                  ColorMix2 (if(rangemin(1,rangemax(Valeur,0.7))<0.9,-Sqrt(-(rangemin(1,rangemax(Valeur,0.7))-0.9)/(0.9-0.7)),Sqrt((rangemin(1,rangemax(Valeur,0.7))-0.9)/(1-0.9))), ARGB(255, 255, 0, 0), ARGB(255, 0, 128, 0), ARGB(255, 255, 255, 0))

                   

                  Tu peux bien sur modifier les paramètres:

                  • Valeur                            Nom de ton expression
                  • ARGB(255, 255, 0, 0)         Couleur de la valeur basse (rouge dans ce cas)
                  • ARGB(255, 0, 128, 0)           Couleur de la valeur haute (vert dans ce cas)
                  • ARGB(255, 255, 255, 0)       Couleur de la valeur intermédiaire (jaune dans ce cas)
                  • 0.7                                Limite de la valeur basse
                  • 1                                  Limite de a valeur haute
                  • 0.9                                Limite de la valeur intermédiaire

                   

                    • Re: Couleur dégradée
                      Sébastien Fatoux

                      Bonjour,

                       

                      Si des réponses vous ont aidés, merci de les spécifier comme "Utile".

                      Si vous désirez recommander une réponse aux autres membre de la communauté, cliquez sur recommander.

                      Et si la réponse résout votre problème, merci de mettre la question comme résolue, afin d'aider les autres membres de la communauté.

                       

                      Merci

                      • Re: Couleur dégradée
                        Maurice ludo

                        et si je garde un arriéré plan avec des couleurs figées, avec cette expression j'ai n'est pas ma même résultat :

                        if (Len (vValeur_H_Pleines_Creuses) = 0,

                         

                         

                            white(),

                           

                           if($(vValeur_H_Pleines_Creuses )> 0.92, RGB(9, 106, 9), --> vert

                            if($(vValeur_H_Pleines_Creuses ) <= 0.92 and valeur >= 0.90, RGB (255, 255, 0), -- Jaune

                             if($(vValeur_H_Pleines_Creuses ) <= 0.89 and valeur >= 0.86, RGB (237, 127, 16), --> Orange

                              if($(vValeur_H_Pleines_Creuses ) <= 0.85, RGB(255, 0, 0), --> Rouge

                             Black()

                        ))))

                        l'ancienne expression

                        ColorMix2( if(rangemin(1,rangemax(Valeur,0.85))<0.91,-Sqrt(-(rangemin(1,rangemax(Valeur,0.85))-0.91)/(0.91-0.85)),Sqrt((rangemin(1,rangemax(Valeur,0.9))-0.91)/(1-0.91))), ARGB(255, 255, 0, 0), ARGB(255, 0, 128, 0),ARGB(255, 255, 255, 0))