Matroids Matheplanet Forum Index
Moderiert von Stefan_K
Matroids Matheplanet Forum Index » Textsatz mit LaTeX » Venn Diagramm mit TikZ darstellen
Druckversion
Druckversion
Antworten
Antworten
Autor
Universität/Hochschule Venn Diagramm mit TikZ darstellen
Koohf
Junior Letzter Besuch: im letzten Quartal
Dabei seit: 14.12.2019
Mitteilungen: 18
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2020-01-26


Guten morgen,
Wie kann ich die folgenden Venn Diagramme mit TikZ darstellen.
Mir schwebt eine Kombo aus der matrix Bibliothek, shapes und backgrounds vor.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Slash
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 23.03.2005
Mitteilungen: 7927
Aus: Cuxhaven-Sahlenburg
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2020-01-26


Hi Koohf,

schau mal in diesen Artikel. Dort findest du dieses Beispiel.

<math>\begin{tikzpicture}[scale=1.3]
\definecolor{hellgruen}{rgb}{0.6,0.95,0.3}
\def\firstcircle{(0,0) circle [radius=8mm]}
\def\secondcircle{(0.5,0.866) circle [radius=8mm]}
\def\thirdcircle{(1,0) circle [radius=8mm]}
\begin{scope}
\clip \firstcircle;
\fill[hellgruen] \secondcircle;
\fill[hellgruen] \thirdcircle;
\end{scope}
\begin{scope}
\clip \secondcircle;
\fill[hellgruen] \thirdcircle;
\end{scope}
\draw [thin] \firstcircle;
\draw [thin]  \secondcircle;
\draw [thin] \thirdcircle;
\draw node at (-0.2,-0.2) {$a$};
\draw node at (1.2,-0.2) {$b$};
\draw node at (0.5,1.066) {$c$};
\end{tikzpicture}</math>
LaTeX
<math>\begin{tikzpicture}[scale=1.3]
\definecolor{hellgruen}{rgb}{0.6,0.95,0.3}
\def\firstcircle{(0,0) circle [radius=8mm]}
\def\secondcircle{(0.5,0.866) circle [radius=8mm]}
\def\thirdcircle{(1,0) circle [radius=8mm]}
\begin{scope}
\clip \firstcircle;
\fill[hellgruen] \secondcircle;
\fill[hellgruen] \thirdcircle;
\end{scope}
\begin{scope}
\clip \secondcircle;
\fill[hellgruen] \thirdcircle;
\end{scope}
\draw [thin] \firstcircle;
\draw [thin]  \secondcircle;
\draw [thin] \thirdcircle;
\draw node at (-0.2,-0.2) {$a$};
\draw node at (1.2,-0.2) {$b$};
\draw node at (0.5,1.066) {$c$};    
\end{tikzpicture}</math>


Gruß, Slash


-----------------
Bound to be disappointing so why wait?



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Koohf
Junior Letzter Besuch: im letzten Quartal
Dabei seit: 14.12.2019
Mitteilungen: 18
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, vom Themenstarter, eingetragen 2020-01-26


Hi Slash,

das ist eine tolle Grundlage.
Danke.
jetzt bräuchte ich einen Rahmen um diese Konstruktion. Mal schauen, ob ich das hinkriege.
Danke nochmal.
Edit:
Ich habe hier folgenden Code für den Durchschnitt gefunden. Ich finde, dass das eine gute Grundlage ist.
Jetzt fehlen noch Komplement und Vereinigung.
Latex
\documentclass{letter}
  \usepackage{tikz}
  \begin{document}
\begin{tikzpicture}[fill=gray]
% left hand
\scope
\clip (-2,-2) rectangle (2,2)
      (1,0) circle (1);
\fill (0,0) circle (1);
\endscope
% right hand
\scope
\clip (-2,-2) rectangle (2,2)
      (0,0) circle (1);
\fill (1,0) circle (1);
\endscope
% outline
\draw (0,0) circle (1) (0,1)  node [text=black,above] {$A$}
      (1,0) circle (1) (1,1)  node [text=black,above] {$B$}
      (-2,-2) rectangle (3,2) node [text=black,above] {$H$};
\end{tikzpicture}
\end{document}
Edit2: ich muss tatsächlich zugeben, dass ich nicht wirklich versteh was in dem Code passiert. Wäre super, wenn jemand mir erklären könnte, was warum so passiert, wie es passiert.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Koohf
Junior Letzter Besuch: im letzten Quartal
Dabei seit: 14.12.2019
Mitteilungen: 18
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, vom Themenstarter, eingetragen 2020-01-26


Hier scheint ein brauchbares Beispiel zu sein, welches man möglicherweise benutzen könnte.
Man sollte es nur in ein Rechteck setzen, damit man den Bezug zur Grundmenge $\Omega$ hat.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Slash
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 23.03.2005
Mitteilungen: 7927
Aus: Cuxhaven-Sahlenburg
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.4, eingetragen 2020-01-26


Für Rechtecke und allgemein Polygone kann man die Library Shapes benutzen.

Hier ist eine kleine Anleitung im Umgang mit TikZ.

Gruß, Slash


-----------------
Bound to be disappointing so why wait?



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Ehemaliges_Mitglied
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.5, eingetragen 2020-01-26



<math>
\pgfmathsetmacro\a{3}
\pgfmathsetmacro\r{\a/4}
\tikzset{
schraffur/.style={postaction={pattern=north #1 lines, pattern color=gray,}},
schraffur/.default={west},
textstyle/.style={fill=white, inner sep=1pt},
omegastyle/.style={textstyle, left=1ex},
}

\begin{tikzpicture}[]
% A
\coordinate[] (M) at (0.5*\a, 0.5*\a);
\draw[] (0,0) rectangle (\a,\a) node[omegastyle]{$\Omega$};
\draw[schraffur] (M) circle[radius=\r] node[textstyle]{$A$};
\end{tikzpicture}

\begin{tikzpicture}[]
% not A
\coordinate[] (M) at (0.5*\a, 0.5*\a);
\draw[schraffur] (0,0) rectangle (\a,\a) node[omegastyle]{$\Omega$};
\draw[fill=white] (M) circle[radius=\r] node[]{$A$};
\path[] (M) -- +(33:1.75*\r) node[textstyle]{$\overline{A}$};
\end{tikzpicture}

\begin{tikzpicture}[]
% A union B
\coordinate[] (M1) at (2/5*\a, 3/5*\a);
\coordinate[] (M2) at  (3/5*\a, 2/5*\a);

\draw[] (0,0) rectangle (\a,\a) node[omegastyle]{$\Omega$};
\draw[schraffur] (M1) circle[radius=\r];
\path[] (M1) -- +(122:1.25*\r) node[]{$A$};
\draw[schraffur=east] (M2) circle[radius=\r];
\path[] (M2) -- +(-33:1.25*\r) node[]{$B$};
\end{tikzpicture}

\begin{tikzpicture}[]
% A section B
\coordinate[] (M1) at (2/5*\a, 3/5*\a);
\coordinate[] (M2) at  (3/5*\a, 2/5*\a);

\draw[] (0,0) rectangle (\a,\a) node[omegastyle]{$\Omega$};
\path[] (M1) -- +(122:1.25*\r) node[]{$A$};
\path[] (M2) -- +(-33:1.25*\r) node[]{$B$};
\draw[] (M2) circle[radius=\r];
\draw[clip] (M1) circle[radius=\r];
\draw[postaction={pattern=crosshatch, pattern color=gray,}] (M2) circle[radius=\r];
\end{tikzpicture}
</math>


LaTeX
%\documentclass{article}
\documentclass[tikz, margin=5pt]{standalone}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{patterns}
 
\begin{document}
\pgfmathsetmacro\a{3}
\pgfmathsetmacro\r{\a/4}
\tikzset{
schraffur/.style={postaction={pattern=north #1 lines, pattern color=gray,}},
schraffur/.default={west}, 
textstyle/.style={fill=white, inner sep=1pt},
omegastyle/.style={textstyle, left=1ex},
}
 
\begin{tikzpicture}[]
% A 
\coordinate[] (M) at (0.5*\a, 0.5*\a);
\draw[] (0,0) rectangle (\a,\a) node[omegastyle]{$\Omega$};
\draw[schraffur] (M) circle[radius=\r] node[textstyle]{$A$};
\end{tikzpicture}
 
\begin{tikzpicture}[]
% not A 
\coordinate[] (M) at (0.5*\a, 0.5*\a);
\draw[schraffur] (0,0) rectangle (\a,\a) node[omegastyle]{$\Omega$};
\draw[fill=white] (M) circle[radius=\r] node[]{$A$};
\path[] (M) -- +(33:1.75*\r) node[textstyle]{$\overline{A}$};
\end{tikzpicture}
 
\begin{tikzpicture}[]
% A union B
\coordinate[] (M1) at (2/5*\a, 3/5*\a);
\coordinate[] (M2) at  (3/5*\a, 2/5*\a);
 
\draw[] (0,0) rectangle (\a,\a) node[omegastyle]{$\Omega$};
\draw[schraffur] (M1) circle[radius=\r];
\path[] (M1) -- +(122:1.25*\r) node[]{$A$};
\draw[schraffur=east] (M2) circle[radius=\r];
\path[] (M2) -- +(-33:1.25*\r) node[]{$B$};
\end{tikzpicture}
 
\begin{tikzpicture}[]
% A section B
\coordinate[] (M1) at (2/5*\a, 3/5*\a);
\coordinate[] (M2) at  (3/5*\a, 2/5*\a);
 
\draw[] (0,0) rectangle (\a,\a) node[omegastyle]{$\Omega$};
\path[] (M1) -- +(122:1.25*\r) node[]{$A$};
\path[] (M2) -- +(-33:1.25*\r) node[]{$B$};
\draw[] (M2) circle[radius=\r];
\draw[clip] (M1) circle[radius=\r];
\draw[postaction={pattern=crosshatch, pattern color=gray,}] (M2) circle[radius=\r];
\end{tikzpicture}
\end{document}




Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
MCcheck
Junior Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.02.2020
Mitteilungen: 6
Aus: Im Vorhof der Hölle
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.6, eingetragen 2020-03-02

\(\begingroup\)\(%\usepackage[sfmath,lighttext]{kpfonts}\)
2020-01-26 10:30 - Slash in Beitrag No. 1 schreibt:
LaTeX
<math>\begin{tikzpicture}[scale=1.3]
\definecolor{hellgruen}{rgb}{0.6,0.95,0.3}
\def\firstcircle{(0,0) circle [radius=8mm]}
\def\secondcircle{(0.5,0.866) circle [radius=8mm]}
\def\thirdcircle{(1,0) circle [radius=8mm]}
\begin{scope}
\clip \firstcircle;
\fill[hellgruen] \secondcircle;
\fill[hellgruen] \thirdcircle;
\end{scope}
\begin{scope}
\clip \secondcircle;
\fill[hellgruen] \thirdcircle;
\end{scope}
\draw [thin] \firstcircle;
\draw [thin]  \secondcircle;
\draw [thin] \thirdcircle;
\draw node at (-0.2,-0.2) {$a$};
\draw node at (1.2,-0.2) {$b$};
\draw node at (0.5,1.066) {$c$};    
\end{tikzpicture}</math>

2020-01-26 10:30 - Slash in Beitrag No. 1 schreibt:
Hi Koohf,

schau mal in diesen Artikel. Dort findest du dieses Beispiel.

<math>\begin{tikzpicture}[scale=1.3]
\definecolor{hellgruen}{rgb}{0.6,0.95,0.3}
\def\firstcircle{(0,0) circle [radius=8mm]}
\def\secondcircle{(0.5,0.866) circle [radius=8mm]}
\def\thirdcircle{(1,0) circle [radius=8mm]}
\begin{scope}
\clip \firstcircle;
\fill[hellgruen] \secondcircle;
\fill[hellgruen] \thirdcircle;
\end{scope}
\begin{scope}
\clip \secondcircle;
\fill[hellgruen] \thirdcircle;
\end{scope}
\draw [thin] \firstcircle;
\draw [thin]  \secondcircle;
\draw [thin] \thirdcircle;
\draw node at (-0.2,-0.2) {$a$};
\draw node at (1.2,-0.2) {$b$};
\draw node at (0.5,1.066) {$c$};
\end{tikzpicture}</math>
LaTeX
<math>\begin{tikzpicture}[scale=1.3]
\definecolor{hellgruen}{rgb}{0.6,0.95,0.3}
\def\firstcircle{(0,0) circle [radius=8mm]}
\def\secondcircle{(0.5,0.866) circle [radius=8mm]}
\def\thirdcircle{(1,0) circle [radius=8mm]}
\begin{scope}
\clip \firstcircle;
\fill[hellgruen] \secondcircle;
\fill[hellgruen] \thirdcircle;
\end{scope}
\begin{scope}
\clip \secondcircle;
\fill[hellgruen] \thirdcircle;
\end{scope}
\draw [thin] \firstcircle;
\draw [thin]  \secondcircle;
\draw [thin] \thirdcircle;
\draw node at (-0.2,-0.2) {$a$};
\draw node at (1.2,-0.2) {$b$};
\draw node at (0.5,1.066) {$c$};    
\end{tikzpicture}</math>


Gruß, Slash


Das
\def\firstcircle{(0,0) circle [radius=8mm]}
\def\secondcircle{(0.5,0.866) circle [radius=8mm]}
\def\thirdcircle{(1,0) circle [radius=8mm]}

ist übrigens nicht besonders TikZ-haft, auch wenn es funktioniert.
Man definiert (mit TikZ-Mitteln) Koordinaten und zeichnet mehrfach Auftretendes (bei Bedarf) mit Schleifen.

Zum anderen verwendet man keine absoluten (kartesischen) Koordinaten, man konstruiert.
Die Mittelpunkte der Kreise sind offensichtlich Ecken eines gleichseitigen Dreiecks; also hängt der ganze Graph von einer Kantenlänge (\a) ab (und einem festen Winkel 60°). TikZ kennt im Übrigen auch Polarkoordinaten.

<math>
\pgfmathsetmacro{\a}{1.3}
\definecolor{hellgruen}{rgb}{0.6,0.95,0.3}

\begin{tikzpicture}[
font=\footnotesize,
background rectangle/.style={draw=none, fill=black!1, rounded corners}, show background rectangle,
]
\coordinate[] (A) at (0,0);
\coordinate[] (B) at (\a,0);
\coordinate[] (C) at (60:\a);

\foreach \X/\Y in {A/B, A/C, B/C}{
\begin{scope}
\clip  (\X) circle[radius=\a];
\clip  (\Y) circle[radius=\a];
\fill[hellgruen]  (\Y) circle[radius=\a];
\end{scope}
}

\foreach[count=\n, evaluate={\N=2*\n+1}] \P in {A,B,C}{
\draw[] (\P) circle[radius=\a];
\path[draw=none] (\P) --+ (\N*60+30:0.5*\a) node[]{$\P$};
}

%\draw[local bounding box=dreieck] (A) -- (B) -- (C) --cycle;
\end{tikzpicture}
</math>

<math> \pgfmathsetmacro{\a}{0.8} 
\definecolor{hellgruen}{rgb}{0.6,0.95,0.3} 
 
\begin{tikzpicture}[font=\footnotesize] 
\coordinate[] (A) at (0,0); 
\coordinate[] (B) at (\a,0); 
\coordinate[] (C) at (60:\a); 
 
\foreach \X/\Y in {A/B, A/C, B/C}{ 
\begin{scope} 
\clip  (\X) circle[radius=\a]; 
\clip  (\Y) circle[radius=\a]; 
\fill[hellgruen]  (\Y) circle[radius=\a]; 
\end{scope} 
} 
 
\foreach[count=\n, evaluate={\N=2*\n+1}] \P in {A,B,C}{ 
\draw[] (\P) circle[radius=\a]; 
\path[draw=none] (\P) --+ (\N*60+30:0.5*\a) node[]{$\P$}; 
} 
 
%\draw[local bounding box=dreieck] (A) -- (B) -- (C) --cycle; 
\end{tikzpicture} </math>
hier


latex
\documentclass[margin=5pt, tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{backgrounds}
 
\begin{document}
\pgfmathsetmacro{\a}{0.8}  
\definecolor{hellgruen}{rgb}{0.6,0.95,0.3}
 
\begin{tikzpicture}[
font=\footnotesize,
background rectangle/.style={draw=none, fill=black!1, rounded corners}, show background rectangle,
]
\coordinate[] (A) at (0,0); 
\coordinate[] (B) at (\a,0); 
\coordinate[] (C) at (60:\a); 
 
\foreach \X/\Y in {A/B, A/C, B/C}{
\begin{scope}
\clip  (\X) circle[radius=\a];
\clip  (\Y) circle[radius=\a];
\fill[hellgruen]  (\Y) circle[radius=\a];
\end{scope}
}
 
\foreach[count=\n, evaluate={\N=2*\n+1}] \P in {A,B,C}{ 
\draw[] (\P) circle[radius=\a];
\path[draw=none] (\P) --+ (\N*60+30:0.5*\a) node[]{$\P$};
}
 
%\draw[local bounding box=dreieck] (A) -- (B) -- (C) --cycle; 
\end{tikzpicture}
\end{document}


\(\endgroup\)


Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Koohf hat die Antworten auf ihre/seine Frage gesehen.
Koohf hatte hier bereits selbst das Ok-Häkchen gesetzt.
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2020 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]