Ich möchte zwei Kreisdiagramme in einem tikzpicture unterbringen. Ein Pfeil soll von einem bestimmten Teil des einen Diagramms auf ein anderes Diagramm zeigen. Das eine Diagramm habe ich schon mal grob erstellt. Das zweite Diagramm will nicht so, wie ich das will. Die Winkel, die ich zeichnen will, fangen immer an der Ursprungskoodinate an, anstatt bei dem draw Punkt, den ich angegeben habe. Was mache ich da falsch? Macht man das überhaupt so? Oder sollte ich da sowieso zwei Grafiken erstellen? Wobei ich dann wieder Probleme damit habe, das ganze so zu positionieren, dass der Pfeil dann passend auf das zweite Diagramm zeigt.

Im Grunde soll das Ganze nachher ungefähr so aussehen:

alt text

Hier mein bisheriger Quellcode:

Open in Online-Editor
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
%%%%%%%%zeichnen des ersten Diagramms %%%%%%%%
%zeichnen der subjektiven Faktoren
\draw[fill=red, thick] (0,0) -- (108:2cm) arc (108:0:2cm)
node at (54:1.2cm) {30 \%};
\draw (23:2.3cm) -- (23:2.3cm) node[right] {subjektive Faktoren};
%zeichnen der objektiven Faktoren
\draw[fill=blue, thick] (0,0) -- (360:2cm) arc (360:108:2cm)
node at (252:1.2cm) {70 \%};
\draw (252:2.3cm) -- (252:2.3cm) node[below] {objektive Faktoren};
%%%%%%%% zeichnen des Pfeils %%%%%%%%
\draw (1,-1) -- (3,-3);
\draw (3,-3) -- (2.5,-3);
\draw (3,-3) -- (3,-2.5);
%%%%%%%%zeichnen des zweiten Diagramms %%%%%%%%
  \foreach \start/\end/\middle/\percent/\anchor/\beschriftung in {
    0/211/106/58.5/above/xx,
    211/249/230/10.6/below/xx,
    249/295/272/12.8/below/xx,
    295/329/312/9.6/below/xx,
    329/360/344/8.5/right/xx}
  {
    \draw[fill=blue, thick] (7,-6) -- (\end:3cm) arc (\end:\start:3cm)
    node at (\middle:1.8cm) {\percent \%};
    \draw (\middle:3cm) -- (\middle:3.5cm) node[\anchor] {\beschriftung };
  };
\end{tikzpicture}
\end{document}

gefragt 30 Jun '16, 11:52

tiga05's gravatar image

tiga05
1612
Akzeptiert-Rate: 0%

bearbeitet 30 Jun '16, 16:29

saputello's gravatar image

saputello
11.1k174365

2

Bitte keine HTML-Tags, sondern immer Markdown verwenden.

(30 Jun '16, 12:18) Henri

Bitte nicht nur einen Code-Auschnitt, sondern ein vollständiges Minimalbeispiel angeben. Dann funktioniert nämlich auch die Übergabe des Codes an den Online-Editor via automatisch eingefügtem Link.

(30 Jun '16, 12:22) saputello

Sollte nun funktionieren.

(30 Jun '16, 12:44) tiga05
1

Nein! Da fehlt alles, was um die tikzpicture-Umgebung herum notwendig ist, um ein vollständiges Dokument daraus zu machen. Beachte meinen Link!

(30 Jun '16, 12:53) saputello

Ich weiß nicht was du damit meinst. ich habe keine weitere tikzpicture-Umgebung. Der Online-Editor funktioniert außerdem doch und zeigt identisch mein Problem. Vielleicht gehts ja nicht, weil da was fehlt? :D

(30 Jun '16, 13:23) tiga05

@tiga05 Overleaf ergänzt da zwar eine Klasse und ein paar Pakete, was bei Deinem Beispiel zu reichen scheint, aber es wäre viel besser, wenn Dein Beispiel auch lauffähig ist, wenn man es so in eine lokale Datei auf dem eigenen Computer kopiert.

(30 Jun '16, 14:53) esdd
(30 Jun '16, 16:27) saputello
Ergebnis 5 von 7 show 2 more comments

Du musst beim zweiten Diagramm alle Koordinaten relativ zum Ursprung von diesem angeben.

Open in Online-Editor
\draw[fill=blue, thick] (7,-6) -- +(\end:3cm) arc (\end:\start:3cm);
\path (7,-6) +(\middle:1.8cm) node {\percent \%};
\draw (7,-6) ++(\middle:3cm) -- +(\middle:.5cm) node[\anchor] {\beschriftung};

Lies dazu am besten den Abschnitt »13.4 Relative and Incremental Coordinates« im pgfmanual durch.

Das Ergebnis ist dann

alt text


Hier sind mal noch zwei der zahlreichen möglichen Alternativen:

Open in Online-Editor
\documentclass[margin=5pt]{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
  % erstes Kreisdiagramm
  \def\radius{2}
  \coordinate(D1) at (0,0);
  \foreach
    [
      remember=\end as \start (initially 0),
      evaluate={\end=\start+3.6*\percent},
      evaluate={\middle=.5*(\start+\end)}
    ] 
    \percent/\farbe in {30/red,70/blue!80}
    {
      \draw[thick,fill=\farbe,fill opacity=.8,line join=round] 
        (D1) -- +(\end:\radius) arc (\end:\start:\radius)--cycle;
      \path (D1) +(\middle:{0.7*\radius})node{\percent \%};
    };%
  \path
    (23:2.3)node[right]{subjektive Faktoren}
    (252:2.3)node[below]{objektive Faktoren}
  ;

  % zweites Kreisdiagramm
  \def\radius{3}
  \coordinate (D2) at (6,-7);% Mittelpunkt zweites Kreisdiagramm
  \foreach
    [
      remember=\end as \start (initially 0),
      evaluate={\end=\start+3.6*\percent},
      evaluate={\middle=.5*(\start+\end)}
    ] 
    \percent/\farbe/\beschriftung in {58.5/blue!60/xx,10.6/purple/xx,12.8/green/xx,9.6/orange/xx,8.5/gray/xx}
    {
      \draw[thick,fill=\farbe,fill opacity=.8,line join=round] 
        (D2) -- +(\end:\radius) arc (\end:\start:\radius)--cycle;
      \path(D2) +(\middle:{0.7*\radius}) node{\percent \%};
      \draw(D2) ++(\middle:\radius)node[pin=\middle:\beschriftung] {};
    };

  % Pfeil
  \draw[->,line width=1mm,shorten <=1.5cm, shorten >=4cm](D1)--(D2);
\end{tikzpicture}
\end{document}

alt text

Open in Online-Editor
\documentclass[margin=5pt]{standalone}
\usepackage{tikz}
\newcommand*\kreisdiagramm[2]{%
  \foreach
    [
      remember=\end as \start (initially 0),
      evaluate={\end=\start+3.6*\percent},
      evaluate={\middle=.5*(\start+\end)}
    ] 
    \percent/\farbe in {#2}
    {
      \draw[thick,fill=\farbe,fill opacity=.8,line join=round]
        (0,0) -- (\end:#1) arc (\end:\start:#1)--cycle;
      \node at (\middle:{0.7*#1}) {\percent \%};
    };%
}

\begin{document}
\begin{tikzpicture}
  % erstes Kreisdiagramm
  \kreisdiagramm{2}{30/red,70/blue}
  \path
    (23:2.3)node[right]{subjektive Faktoren}
    (252:2.3)node[below]{objektive Faktoren}
  ;
  % zweites Kreisdiagramm mit verschobenem Ursprung
  \coordinate(D2)at(6,-7);
  \begin{scope}[shift={(D2)}]
    \kreisdiagramm{3}{58.5/blue!80,10.6/purple,12.8/green,9.6/orange,8.5/gray}
  \end{scope}
  % Pfeil
  \draw[->,line width=1mm,shorten <=1.5cm,shorten >=4cm](0,0)--(D2);
\end{tikzpicture}
\end{document}

alt text

Permanenter link

beantwortet 30 Jun '16, 14:50

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

bearbeitet 02 Jul '16, 23:17

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×41
×7

gestellte Frage: 30 Jun '16, 11:52

Frage wurde gesehen: 6,833 Mal

zuletzt geändert: 02 Jul '16, 23:17