banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#1 Tue 09 September 2014 11:55

aheape
Juste Inscrit !
Date d'inscription: 9 Sep 2014
Messages: 4

QGIS : Attribuer une couleur à des sous-catégories de symboles

Bonjour,

Je veux donner des couleurs différentes à mes anticlinaux et synclinaux en fonction de la direction de leur axe.
J'ai donc un symbole pour dire si ils sont anticlinaux ou synclinaux, mais je voudrais en plus leur attribuer une couleur selon leur direction :
Bleu foncé si ils ont un axe E-W, Vert clair si ils ont un axe NW-SE, Vert foncé s'ils ont un axe N-S et Bleu clair s'ils ont un axe NE-SW.

Que dois-je écrire dans la fenêtre "constructeur de chaînes d'expression"? (Je suis sous Q-Gis Valmiera, si cela a une importance)

Merci d'avance de vos réponses rapides

Hors ligne

 

#2 Tue 09 September 2014 12:07

Leyan
Participant assidu
Date d'inscription: 14 Oct 2013
Messages: 160

Re: QGIS : Attribuer une couleur à des sous-catégories de symboles

Comment sont stockées tes données ? Quelle est la forme des attributs ? Le mieux est d'utiliser les règles, tu auras un contrôle complet de ce que tu veux afficher. Une règle comme "type='anti' AND direction='EW'" devrait suffire, il t'en faudra huit.

Hors ligne

 

#3 Tue 09 September 2014 12:20

aheape
Juste Inscrit !
Date d'inscription: 9 Sep 2014
Messages: 4

Re: QGIS : Attribuer une couleur à des sous-catégories de symboles

Dans ma table d'attribut j'ai une colonne pour "Sens" dans laquelle je note "Anticlinal" ou "Synclinal" en fonction des types de plis ; et j'ai une autre colonne "Direction" dans laquelle je note "N-S", "NE-SW", "E-W" ou "NW-SE".

J'ai commencé par catégorisé mes données en fonction du sens, en appliquant une symbolisation spéciale pour "Anticlinal" et pour "Synclinal". Ensuite, j'ai voulu utiliser une règle pour leur donner une couleur en fonction de la direction, mais je n'arrive pas à trouver quelle règle utiliser et comment l'écrire. En gros, j'essaie d'écrire :
when "Direction" = "N-S" then '<Dark blue>'
when "Direction" = "NE-SW" then '<Light green>'
when "Direction" = "E-W" then '<Dark green>'
when "Direction = "NW-SE" then '<Light green>'
end

Mais visiblement ça marche pas comme ça......

Hors ligne

 

#4 Tue 09 September 2014 13:39

aheape
Juste Inscrit !
Date d'inscription: 9 Sep 2014
Messages: 4

Re: QGIS : Attribuer une couleur à des sous-catégories de symboles

Sauriez-vous comment je dois formuler ma règle exactement?

Hors ligne

 

#5 Tue 09 September 2014 14:08

Titius
Participant actif
Date d'inscription: 27 Aug 2013
Messages: 69

Re: QGIS : Attribuer une couleur à des sous-catégories de symboles

Bonjour,

Il vous suffit d'utiliser la symbologie par "ensemble de règle" et créer ensuite le symbole que vous voulez, y compris la couleur, en utilisant comme comme règle "Direction" = 'N-S' (attention au nombre de guillemet, c'est important).

Vous trouverez toutes les infos sur la symbologie par ensemble de règle dans l'un des cours que vous a fournit l'un de vos gentils encadrants de stage wink

Hors ligne

 

#6 Tue 09 September 2014 14:45

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3876

Re: QGIS : Attribuer une couleur à des sous-catégories de symboles

Bonjour,
Vous êtes bien sur une des bonnes voies. Après avoir catégorisé votre couche selon le champ "Sens", double-cliquez sur le symbole comme si vous vouliez en modifier les propriétés. A un certain niveau de détail, vous devriez voir apparaître un bouton en bas "Source de définition des propriétés". Cliquez dessus et en face de "Couleur" cliquez sur Epsilon. C'est dans cette fenêtre qu'il faudra saisir la formule, avec les précautions suivantes:
- on utilise le double guillemet pour identifier le nom du champ : "Direction"
- le simple guillemet pour indiquer une valeur de type texte : 'NE-SW' (à moins que les valeurs renseignées dans la table ne soient vraiment avec le guillemet double)
- la formule, dans le cas-ci, doit commencer par un CASE
- la description de la couleur se fait en 'rouge, vert, bleu, alpha' soit une série de 4 nombres séparés par une virgule, le tout entre guillemets simples. Il vous faut donc au préalable trouver les combinaisons qui vous conviennent le mieux.
On a donc quelque chose du style

Code:

CASE WHEN "Direction" = 'N-S' THEN '0,0,255,100'
WHEN "Direction" = 'NE-SW' THEN ...
...
END

Pensez à cocher, une fois sorti de cette fenêtre, "Couleur" afin que vos règles soient prises en compte dans la symbologie.

L'inconvénient de ce système, pour l'instant, est que la légende n'est pas conforme aux règles appliquées. C'est vrai sur la carte mais pas dans la légende à gauche donc pas si top que cela.

La méthode qui conserve cette classification consisterait à faire directement la classification avec les "ensembles de règles" et non en catégorisé (des infos ici même si l'interface n'est pas à jour):
1/ Choisir "Ensemble de règles" dans les propriétés
2/ Ajouter une règle "Sens" = 'Synclinal'. Validez puis ajoutez la seconde règle pour 'Anticlinal'
3/ Sélectionnez chacune de ces règles et créez les catégories sur la base du champ "Direction"; ça se passe dans "Affinez les règles" > "ajouter des catégories".
4/ Symbolisez comme il vous convient les lignes ainsi obtenues.
C'est un peu plus long mais ça assure la correspondance entre la légende à gauche et le fond de carte
Vous pouvez aussi à l'étape 2 choisir une règle du style "Sens"='Synclinal' AND "Direction"='N-S' et ainsi de suite pour les autres directions puis sens...

EDIT: Le temps que j'écrive mon roman, Titius qui semble mieux connaître le contexte a déjà frappé smile

Dernière modification par SANTANNA (Tue 09 September 2014 14:47)

Hors ligne

 

#7 Tue 09 September 2014 14:50

aheape
Juste Inscrit !
Date d'inscription: 9 Sep 2014
Messages: 4

Re: QGIS : Attribuer une couleur à des sous-catégories de symboles

ça fonctionne, merci!

Hors ligne

 

Pied de page des forums

Powered by FluxBB