Diagramme Venn tikz
Bonsoir à tous
Je souhaiterais réaliser en tex (avec tikz) le diagramme de Venn en image jointe (pour l'instant réalisé en Mathematica). Quelqu'un sait-il comment réaliser des diagrammes de Venn propres ?
En plus du code à rentrer pour le remplissage correct de chaque sous-ensemble, je bugue sur l'ajout des petits carrés de légendes pour les couleurs : y a-t-il une façon prévue par Tikz pour ce genre de légendes (autre bien sûr que de tracer ces petits carrés à la main) ?
Je vous remercie d'avance pour votre aide !

Réponses
-
Avez-vous essayé le package venndiagram ?
pst-venn semble plus riche, mais il utilise P§STricksIl ne faut pas respirer la compote, ça fait tousser.
J'affirme péremptoirement que toute affirmation péremptoire est fausse -
Bonsoir AdrienAs-tu vu le tutoriel "Tikz pour l'impatient" pages 137 à 144 http://math.et.info.free.fr/TikZ/bdd/TikZ-Impatient.pdfSinon, il y a des exemples
https://texample.net/tikz/examples/tag/venn-diagram/
https://texample.net/tikz/examples/venn-diagram/
sur google "exemples tikz diagramme de Venn" te donne d'autres exemples.
Alain -
BonsoirDésolé pour la réponse très tardive (comme d'habitude...). Merci pour vos réponses ! J'ai réussi un truc pas trop mal en utilisant le message de AD ainsi que quelques idées piquées sur internet (notamment pour "cbox"). Voici le code:
\documentclass[a4paper,8pt]{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{stmaryrd} \usepackage{graphicx} \usepackage{multicol} \usepackage{mathtools} \usepackage{amsthm} \usepackage{float} \usepackage{braket} \usepackage[francais]{babel} \usepackage{graphicx} \usepackage{caption} \usepackage{xcolor} \usepackage{tikz} \usetikzlibrary{decorations.pathreplacing, calligraphy, tikzmark, matrix, fit, positioning} \usetikzlibrary{shapes,backgrounds} \usepackage[left=2.8cm,right=2.9cm,margin=2cm]{geometry} \usepackage{tcolorbox}
Il n'est sans doute pas minimal (j'utilise toujours le même préambule monstrueux et je retire "par paquets" ce qui me semble en trop à chaque fois que je fais un exemple pour ce site).
\newcommand{\cbox}[1]{\raisebox{\depth}{\fcolorbox{black}{#1}{\null}}} \setlength{\parindent}{0pt} \begin{document} ... \def\A{(-1,2) circle (2cm)} \def\B{(1,2) circle (2cm)} \def\C{(0,0) circle (2cm)} \begin{figure}[H] \centering \begin{tikzpicture} \node[left](A) at (-3.1,2) {\LARGE $A$}; \node[right](B) at (3.1,2) {\LARGE $B$}; \node[below](C) at (0,-2.1) {\LARGE $C$}; \begin{scope}[even odd rule] \clip \C (-4.2,-2.7) rectangle (4.2,4.2); \fill[gray!25] \B; \end{scope}
\begin{scope}[even odd rule] \clip \A (-4.2,-2.7) rectangle (4.2,4.2); \fill[gray] \C; \end{scope} \begin{scope} \clip \A; \clip \B; \fill[black!85] \C; \end{scope}
\draw \A; \draw \B; \draw \C; \node[right](D) at (2,-0.5) {\cbox{white} $A \setminus B$}; \node[right](E) at (2,-1) {\cbox{gray!25} $B \setminus C$}; \node[right](F) at (2,-1.5) {\cbox{gray} $C \setminus A$}; \node[right](G) at (2,-2) {\cbox{black!85} $A \cap B \cap C$};
\end{tikzpicture} \captionsetup{labelformat=empty} \caption{Diagramme de Venn de la situation} \end{figure} \end{document}C'est pas mal mais je souhaiterais diminuer globalement la taille de la légende : dans l'idéal, les $A$, $B$ et $C$ à côté des ensembles seraient de taille normale, et c'est la légende qui serait plus petite (au lieu d'être de taille normale comme elle l'est actuellement). J'ai essayé avec des "scriptsize" ou autres, mais ça fout en l'air l'alignement avec le "cbox" (y a-t-il d'ailleurs également un moyen de réduire la taille des carrés "cbox"?).Quelqu'un a-t-il une solution ?[Ce qui donne après compilation. AD] -
Bonsoir AdrienLa taille normale est petite (tu définis 8pt dans documentclass).Pour avoir les $A,B,C$ en taille normale tu supprimes les \LARGE dans les nodes les définissant.Pour la légende, je te suggère de la placer dans un scope. Ainsi, tu pourras déplacer toute la légende d'un coup [xshift=..,yshift=..] (j'ai placé la légende à gauche ainsi le $A\cap B\cap C$ peut mordre en dessous du disque $C$) et diminuer sa taille par un [scale=0.85]. Pour diminuer les caractères de la légende, il faut [scale=0.85] dans chaque nœud, ou préférablement définir un style dans le scope [leg/.style={right,scale=0.85}]
\begin{scope}[xshift=-3.5cm,yshift=0cm,scale=0.85,leg/.style={right,scale=0.85}]
Ce qui donne
\node[leg](D) at (0,-0.5) {\cbox{white} $A \setminus B$};
\node[leg](E) at (0,-1) {\cbox{gray!25} $B \setminus C$};
\node[leg](F) at (0,-1.5) {\cbox{gray} $C \setm\inus A$};
\node[leg](G) at (0,-2) {\cbox{black!85} $A \cap B \cap C$};
\end{scope} -
@AD ça marche très bien! Merci!
Connectez-vous ou Inscrivez-vous pour répondre.
Bonjour!
Catégories
- 165.5K Toutes les catégories
- 64 Collège/Lycée
- 22.2K Algèbre
- 37.6K Analyse
- 6.3K Arithmétique
- 61 Catégories et structures
- 1.1K Combinatoire et Graphes
- 13 Sciences des données
- 5.1K Concours et Examens
- 26 CultureMath
- 51 Enseignement à distance
- 2.9K Fondements et Logique
- 10.8K Géométrie
- 85 Géométrie différentielle
- 1.1K Histoire des Mathématiques
- 79 Informatique théorique
- 3.9K LaTeX
- 39K Les-mathématiques
- 3.5K Livres, articles, revues, (...)
- 2.7K Logiciels pour les mathématiques
- 29 Mathématiques et finance
- 343 Mathématiques et Physique
- 5K Mathématiques et Société
- 3.4K Pédagogie, enseignement, orientation
- 10.1K Probabilités, théorie de la mesure
- 804 Shtam
- 4.2K Statistiques
- 3.8K Topologie
- 1.4K Vie du Forum et de ses membres