[QGIS 2.12] Représentation cartographique quantitative: Les cercles proportionnels

Objectif : traiter une variable quantitative de stock cartographiquement : représenter le nombre de céramiques prélevées par sondages dans un enclos protohistorique  à l’aide de cercles proportionnels.

BANDEAU

Introduction

Le curage des fossés d’enclos de a protohistoire à l’aide de pelles mécaniques est courant. Il permet parfois de ramasser de façon « exhaustive » le mobilier déposé dans les fossés. Il est alors utile de pouvoir représenter la répartition du mobilier par sondage. La donnée disponible, généralement un nombre de restes (NR), un nombre minimum d’individus (NMI) ou une masse total de mobilier est une variable quantitative de stock. Seule la variable taille permet de la représenter graphiquement (c’est pas moi qui le dit, c’est J.Bertin!). L’usage de cercles proportionnels, dont la surface est proportionnelle à la quantité « brute » de matériel est alors la représentation idéale. On bannira la représentation par une variation de couleurs exclusivement réservée pour les variables quantitatives d’intensité (une densité par exemple).

Pour ce billet, nous disposons d’un relevé des structures archéologiques sous forme de polygones, d’un relevé des sondages effectués à la pelle mécanique et d’un tableau élémentaire du céramologue avec le numéro de sondage en ligne et une colonne contenant le comptage de céramique en nombre de reste (NR).

Les fichiers sources:

 un shapefile de polygones de faits (poly.shp)fichiers_sources

un shapefile de polygones de sondages mécaniques (sd.shp)

un tableau élementaire avec le numéro de sondage en ligne et la variable quantitative (NR, NMI ou Poids de céramique) en colonne (ceramique.xls)

 A) Traitement du tableau élémentaire:

tableau_elem

1) Vérifier le nom des champs

Il doivent être courts, explicites, sans caractères spéciaux, surtout pas d’espaces ! …

2) Nommer la feuille

avec un nom court et explicite (Ceram_NR par exemple)

 

B) Traitement des couches spatiales (shapefiles) 

 Pour créer des cercles proportionnels il faut partir d’une couche de points. Nous allons donc créer une couche des sondages découpés selon les limites des fossés puis une couche de points à partir du centroïde des sondages découpés. Ces points seront donc ainsi situés au centre des sondages à l’intérieur des fossés.

1) Découper la couche des sondages selon les fossés :

 Sélectionner les fossés de la couche des faits (poly.shp)

 Menu Vecteur > Outil de géotraitement > Découper…outil_decouper

 

 

 

 

diamog_decouper

 

Choisir la couche à découper : sd.shp

Choisir la couche de découpage : poly.shp

Attention : Cocher la case « utiliser uniquement les valeurs sélectionnées » pour ne découper les sondages qu’à partir des fossés qui nous intéressent !

Bouton [parcourir] pour Enregistrer le résultat de la découpe dans une nouvelle couche (sd_decoup_temp.shp)

 

2) Créer la couche de points des centroïdes des sondages (découpés) :

Menu Vecteur > Outils de géométrie > Centroïdes de polygones…outil_centroidedialog_centroide

 

 

Choisir la couche à partir de laquelle les centroïdes vont être créés : sd_decoup_temp.shp

Bouton [Parcourir] pour Enregistrer la couche de points sd_centroide.shp

 

 

3) Jointure: joindre les données du tableau élémentaire à la couche de centroïdes des sondages :

Ajouter le tableau via Menu Couches > Ajouter une couche vecteur (ou l’icône dédié)

Et choisir la bonne feuille, ici Ceram_NR

Dans la table des matières, faire un clic droit sur la couche de centroïdes de sondages (sd_centroide.shp)   > Propriétés > Jointures

Cliquer sur le bouton bouton_plus

jointuredialog_jointure

On part donc de la couche de centroïdes des sondages…

Choisir la couche à joindre c’est-à-dire le tableau ceram_NR

Choisir les champs d’identifiant permettant de joindre les 2 couches : ici SD dans le tableau et et SD_num dans la couche spatiale.

Choisir les champs à joindre et Personnaliser (réduire) si nécessaire le préfixe des champs à joindre.

Bouton [OK] puis encore [OK]

C) Créer les cercles proportionnels :

A partir de la couche de centroïdes des sondages, faire un clic droit > Propriétés > Style

Choisir bouton_symbole_unique

Cliquer sur symbole simple

Choisir un gris moyen et pas de ligne/bordure

Pour le paramètre Taille, cliquer sur l’icône expression icone_expression

Choisir l’option Assistant taille…assistant_taille

Dans la boîte de dialogue de l’assistant taille,

dialog_assistant_taille

Choisir le champ contenant la variable quantitative de stock, ici Ceram_NR_NR

Choisir la méthode de calcul Surface ou Flannery (Attention surtout pas rayon !)

L’assistant a défini par défaut la taille minimale et maximale des cercles proportionnels 

L’assistant à récupéré les valeurs mini et max de votre variable quantitative !

Bouton [OK]

Note : si vous voulez comparer plusieurs cartes avec des cercles proportionnels par exemple, pensez à mettre des valeurs min et max équivalentes !

Pour finir dans la boîte de dialogue Style, définir le paramètre Mode de fusion entre objets avec l’option Multiplier afin que l’on distingue la superposition des cercles proportionnels.

Au final la Boîte dialogue Style doit ressembler à cela :dialogue_style

Vérifier :

1- Symbole unique

2- Cliquer sur Symbole simple

3- Remplissage en gris

4- Pas de ligne/bordure

5- L’icône Expression de l’option taille est en jaune (active)

6- le mode de fusion entre objets = Multiplier

Note : L’assistant taille permet en fait de paramétrer l’option taille avec la fonction mathématique scale_exp ainsi :                            coalesce(scale_exp(Ceram_NR_NR, 1, 133, 1, 10, 0.57),0)         
coalesce permet de chercher la première valeur non nulle et de mettre 0 (celui de la fin de l’expression si la valeur est NULL)
scale_exp « transforme une valeur donnée d’un domaine d’entrée à une plage de sortie en utilisant une courbe exponentielle. Cette fonction peut être utilisée pour supprimer les valeurs en dehors de la plage de sortie. » (dixit l’aide de QGIS)
En béotien, cela veut dire que l’on indique dans les parenthèses de la fonction scale_exp() et séparé par des virgules :
Le champ contenant la variable quantitative de stock : Ceram_NR_NR
La valeur minimale de cette variable : 1
La valeur maximale de cette variable : 133
La valeur minimale pour le cercle proportionnel : 1
La valeur maximale de taille pour le cercle proportionnel : 10
Un exposant qui permet de paramétrer la répartition des valeurs. 0.57 avec la méthode Flannery, 0.5 avec Surface
« Des exposants faibles (inférieurs à 1) entraîneront des valeurs de sortie en ‘adoucissement en sortie’ où la répartition commencera rapidement mais ralentira à mesure que l’on s’approche du maximum du domaine. » (encore dixit l’aide QGIS)

Et voilà… on peut évidemment récupérer la légende des cercles proportionnels dans la légende !Carte_cercle_propA Vous ! Pensez Quantitatif et Sémiologie Graphiques ! Mieux vaut être juste que beau ! N’hésitez pas à partager vos œuvres !

 

 

 

Tagué , , , ,

26 réflexions sur “[QGIS 2.12] Représentation cartographique quantitative: Les cercles proportionnels

  1. fredba dit :

    Bonjour et avant tout merci !

    Tout fonctionne parfaitement. J’aimerai savoir si tu sais comment faire pour que la légende affiche des valeurs inférieures à 50. Petite info pour les autres utilisateur, l’option assistant n’apparaissait pas chez moi car ma version était trop ancienne.

    Encore merci.

    • archeomatic dit :

      Salut Fredba !
      1)effectivement les cercles proportionnels via l’assistant taille est apparu avec la version 2.10 de QGIS je crois… au passage la nouvelle version 2.14 amène sont lot de nouveautés importantes.
      2) Je ne suis moi aussi pas encore totalement convaincu de la légende et je n’arrive pas non plus a modifier le choix des cercles (on peut en enlever dans le composeur mais pas en rajouter!). QGIS indique la valeur max mais ne semble pas commencer avec la valeur minimale…

      Perso j’aurais préféré une légende avec les cercles à l’intérieur les un des autres (à l’instar de la légende du plugin proportionals circles).
      Désolé de ne pas pouvoir t’aider plus .. fais moi signe si tu trouve un moyen (ou une bidouille!)

  2. Clem dit :

    Salut,
    Bravo pour les tutos.

    Quelques remarques sur les cercles proportionnels :

    # pour l’affichage « dans l’ordre » des cercles, à savoir les plus grands en-dessous, les plus petits au-dessus, on peut classer les entités du shapefile avec le plugin MMQGIS (à installer) :
    Menu MMQGIS
    > « Modify »
    > « Sort »
    > choisir le shapefile, le champ étudié puis l’option « Descending »
    > enregistrer le résultat.
    Appliquer la variation de la taille, et les symboles seront rangés dans l’ordre.

    # on évite ainsi l’utilisation de l’option de fusion qui crée une nouvelle couleur… et qui dit nouvelle couleur, sous-entend nouvelle information. Or ce est pas le cas ici.

    # Personnellement, je pense qu’il faut faire juste ET beau…

    • archeomatic dit :

      Merci Clem,
      J’approuve à 200% le « juste et beau » et le « nouvelle couleur=nouvelle information » (Big Up Bertin!). Comme dirait un collègue: « on est pas la pour faire de l’archéoJolie ! » mais une carte agréable à regarder sera toujours une belle entrée en matière…
      Merci pour l’astuce MMQGIS (je ne comprends d’ailleurs toujours pas pourquoi elle n’est pas reprise dans le coeur de QGIS), j’avais de mon côté trouvé une soluce -non testée et que je ne retrouve plus à cette heure tardive- en SQL a taper dans « filtre de couche » du type 1=1 sort descending (enfin un truc dans le genre : à corriger…)

      • Clem dit :

        Je viens de voir que le tri vient d’être implémenté dans le cœur de QGis 2.14…
        > option : « contrôle de l’ordre de rendu des entités » dans l’onglet « style ».

        Vaste débat l’archéoJolie. Pour ma part, je plaide pour de belles illustrations en générale et de belles cartes en particulier car les illustrations sont les premières choses qu’on (que je) regarde dans une publi ou un rapport.

  3. EmelineD dit :

    Quelle est la différence entre cette méthode et l’utilisation des diagrammes ?

  4. Gladal dit :

    Premier élément de réponse, dans les diagrammes, tu ne retrouveras pas ta légende… 😦

  5. florent dit :

    Dans la 2.14 (je ne sais pas si c’est valable en dessous), tu peux aussi créer un style gradué avec la méthode « size » et non « color » comment on emploie habituellement.
    Tu vas alors pouvoir affiner tes tailles et graduations en créant autant de classes que tu voudrais, et à partir de n’importe quel symbole…

    • archeomatic dit :

      Salut Florent,
      Pour tout te dire je ne suis pas sur et certains de la validité sémiologique d’une représentation de classes par des symboles proportionnels. Pourquoi pas Mais:
      1)Cela veut dire que tu acceptes de résumer la classe par la valeur moyenne de celle-ci…
      2)Il faudra de toute façon bien faire ta partition en classes (ta discrétisation) afin de respecter ta série statistique ..
      Respectons nos séries statistiques bordel !!
      3) Et on évite de le faire à partir de symboles autres que cercles et carrés (c’est bien les carrés visuellement on perçoit bien les proportions de taille)

  6. florent dit :

    Dans Qgis 2.14 tu peux aussi traiter créer des symboles gradués dont la taille va changer, et non la couleur, comme on fait habituellement, la couleur.
    Il y a dans la fenêtre de paramétrage du style, une petite liste déroulante qui s’appelle Méthode. Là, deux choix : Color ou Size.
    En choisissant Size, il propose un intervalle de taille (de 1 à 8 au début). Il suffit ensuite de réaliser un classement avec un certain nombre de classe, et zou !

    Tu peux donc faire des étoiles, des ronds, des carrés, des avions dont la taille varie en fonction de la colonne de table choisie.

    Et zou !

  7. florent dit :

    Je ne comprends pas très bien la différence entre un cercle proportionnel, et le fait d’utiliser des symboles proportionnels.
    Si par exemple tu prends un symbole cercle et que tu lui appliques une taille variable en fonction d’une donnée, ca revient au même que ce que tu énonces plus haut non ?
    Et ca te permet de choisir tes classes en outre, ce qui est une des questions qu’on s’est tous posé il me semble à la lecture de ton article.
    Et oui, faut que j’apprenne à respecter mes séries statistiques. Quand ? 😉

  8. ameni dit :

    bonjour,
    savez vous comment je peux représenter des cercles proportionnels, et chaque cercle correspond à un intervalle et non pas un chiffre sur la légende?? merci

    • archeomatic dit :

      Salut ameni
      Pour des cercles proportionnels représentant des intervalles je crois me rappeler que cela ce passe du côté de la symbologie graduée , en changeant le symbole avec le bouton dédié.
      Par contre personnellement je ne suis pas fan de ce genre de représentation car le cercle n’est plus proportionnel à la quantité qu’il représente ! Et si malgré cela tu choisis ce type de représentation il faut alors choisir tes intervalles / ta méthode de discretisation en toute conscience. Tu peux alors t’aider de l’onglet histogramme pour étudier la distribution de tes données et visualiser tes ruptures de classes.

  9. Nami dit :

    Bonjour, j’aimerais faire des cercles proportionnels mais avec des couleurs différentes. Savez vous si c’est possible svp ?

    • archeomatic dit :

      Salut Nami,
      Quand tu dis des couleurs différentes j’imagine que tu veux dire selon une catégorie ? Si c’est cela rien de plus simple: quand tu as fini la démarche, tu retournes dans Propriétés>Style et tu choisis le style « catégorisé » (tu choisis sur quel champ puis bouton classer). et c’est marre !
      Alors ca marche ?

      • Nami dit :

        Bonjour Archeomatic, Genial ca marche !
        Dernière petite question, c’est quoi les différences entre les méthodes de calcul : Flannery, surface et rayon stp ?

      • archeomatic dit :

        Salut Nami !
        Bon je n’ai encore trop eut le temps de m’atteler aux méthodes de calcul de taille pour les cercles proportionnel pourtant c’est essentiel ! Ce que je peux te dire:
        1) il ne faut pas choisir rayon car c’est la surface du cercle qui doit être proportionnel et pas son rayon/diamètre.
        2) surface: j’imagine que c’est la surface qui est STRICTEMENT proportionnelle à la valeur.
        « ) Flannery: je suis pas très au fait mais je sais que c’est une compensation afin de contrer « le fait que les lecteurs de cartes ont tendance à sous-estimer la taille des symboles circulaires. », et que les calculs se trouveraient dans l’article de James Flannery “The Graduated Circle: A Description, Analysis, and evaluation of a Quantitative Map Symbol”
        Voila pour l’instant, mais un jour je saurais tout sur la proportionnalité des cercles… je le saurais !!!

      • archeomatic dit :

        et en cadeau je viens de retomber sur un billet sur la perception des symboles proportionnel avec des belles images d’explication (dont la différence visuelle entre surface et flannery) => https://makingmaps.net/2007/08/28/perceptual-scaling-of-map-symbols/

  10. Toto dit :

    Salut,

    Je suis grand débutant dans QGis mais ce tuto est relativement clair pour un néophyte comme moi, merci beaucoup!
    Il y a toutefois une chose que je n’arrive pas à faire :
    Je travail sur des objets provenant d’un ensemble de nécropoles d’une région donnée. J’aimerai avoir une carte avec le nombre de tombe par nécropoles, ce que j’ai réussi à faire avec ce tuto. En revanche, j’aimerai pouvoir afficher en légende le nombre de tombes ET le nom du site. Comment cela serait-il faisable? J’ai cherché et trifouillé mais n’ai rien trouvé.

    Merci d’avance!

    • archeomatic dit :

      Salut Toto !
      Si je comprend ta demande tu veux étiqueter tes cercles proportionnels ? Cela se passe donc dans propriétés > étiquettes .
      Tu veux étiqueter selon 2 champs : nom_site et ton champ sur lequel tu as fait tes cercles proportionnels : count … donc tu clic sur l’epsilon (le gros E violet) et tu tapes une formule du genre:
      « Count » || ‘£’ || « nom_site »
      Puis
      Tu définis le caractère £ comme caractère de saut de ligne .. cherche un peu c’est pas loin 😉
      Et voilà ! J’ai bon ?

      • Toto dit :

        C’est parfait ça marche, merci beaucoup!
        Encore une question : mettre deux étiquettes distinctes, une pour le nombre de tombes et l’autre pour le nom du site, c’est possible ou pas?

  11. archeomatic dit :

    Salut Toto !
    Oui c’est possible avec « étiquettes basées sur des règles » et ajouter autant d’étiquettes avec le + (vert)
    Mais
    je te conseille de plutôt d’utiliser la méthode expliquée précédemment avec concaténation de champs (à l’aide du ||) et l’usage de caractères (le £) dans l’exemple que tu définis comme caractère permettant le « Retour à la ligne sur le caractère » dans le sous-Onglet [Formatage] des propriétés d’étiquetage..
    A+

  12. Kawtar dit :

    Bonjour, Merci pour le tuto.

    Je travaille sur une carte de communes et avec QGIS j’arrive à avoir des diagrammes Camembert qui s’affichent sur toutes le communes. Je souhaite savoir s’il est possible de n’afficher le camembert lié à la commune qu’après un clic sur cette même commune.

    Merci d’avance

  13. Sylvain M. dit :

    Super, merci beaucoup pour cette méthode et ce partage !
    Pour info, plus besoin de générer une couche de points quand on travaille sur des couches de surfaces : on peut maintenant passer par le générateur de géométries, et afficher en mode points d’après les centroïdes.
    (ça évite de dupliquer ses données inutilement)

Laisser un commentaire