Pages: 1
- Sujet précédent - QGIS : Attribuer une couleur à des sous-catégories de symboles - Sujet suivant
#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
Hors ligne
#6 Tue 09 September 2014 14:45
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3945
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é
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
Pages: 1
- Sujet précédent - QGIS : Attribuer une couleur à des sous-catégories de symboles - Sujet suivant