Anzeige:
Ergebnis 1 bis 8 von 8

Thema: Kreisdiagramm Tikz

  1. #1
    Registrierter Benutzer
    Registriert seit
    26.11.2007
    Beiträge
    79

    Kreisdiagramm Tikz

    Hallo,

    ich würde gern ein Kreisdiagramm analog zu dem aus der Tikz Doku (Seite 50) - siehe Anhang - erstellen.

    Leider gibt es hierfür kein Codebeispiel, dass ich auf meine Bedürfnisse anpassen könnte.

    Hat jemand eine Idee?

  2. #2
    Registrierter Benutzer Avatar von localghost
    Registriert seit
    01.11.2006
    Ort
    Braunschweig
    Beiträge
    3.413

    Arrow Galerie mit Beispielen

    Ich meine, so etwas ähnliches mal in der Galerie von pgf/tikZ gesehen zu haben [1]. Da müsstest Du aber mal selbst nach suchen. In der aktuellen Ausgabe der Anleitung (Version 2.00) ist das von dir genannte Beispiel übrigens auf Seite 69 abgebildet.

    [1] TikZ and PGF examples


    MfG
    Thorsten¹
    TeX und LaTeX, Fragen und Antworten – TeXwelt

    ¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
    ² System: openSUSE 13.1 (Linux 3.11.10), TeX Live 2013, TeXworks 0.5 (r1351)

  3. #3
    Registrierter Benutzer
    Registriert seit
    26.11.2007
    Beiträge
    79
    Danke für den Hinweis. Ich habe mit die aktuelle Doku runtergeladen.

    Ich habe mir die Sammlung nun mal angeschaut. Leider ist da kein vergleichbares Beispiel dabei :-(

    Irgend eine andere Idee?

  4. #4
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von Stefan2902 Beitrag anzeigen
    Ich habe mir die Sammlung nun mal angeschaut. Leider ist da kein vergleichbares Beispiel dabei :-(

    Irgend eine andere Idee?
    hier, aber latex->dvips->ps2pdf wählen.

    Code:
    \documentclass{article}
    \usepackage{pstricks,multido}
    \SpecialCoor
    \makeatletter
    \def\psKreis#1#2#3{%
      \degrees[#3]\psset{linecolor=black!50}
      \pscircle{#1}\pscircle{!#1 #2 sub}
      \multido{\iA=0+1}{#3}{%
        \psline(#1;\iA)(!#1 #2 sub \iA\space\pst@angleunit PtoC )}%
      \gdef\WEinheit{#3}\gdef\psRI{#1 }\gdef\psRII{#2 }}
    \def\psData[#1]#2#3{%
      \degrees[\WEinheit]%
      \pst@cntc=#3 \advance\pst@cntc by -#2 \advance\pst@cntc by \@ne
      \psset{fillcolor=#1,fillstyle=solid}
      \multido{\iA=#2+1}{\the\pst@cntc}{%
        \pscustom[linecolor=-#1]{    
          \psline(\psRI;\iA)(! \psRI \psRII sub \iA\space \pst@angleunit PtoC )
          \psarc(0,0){!\psRI \psRII sub}{\iA}{!\iA\space 1 add }
          \psline(!\psRI \psRII sub \iA\space 1 add \pst@angleunit PtoC )%
                 (!\psRI \iA\space 1 add \pst@angleunit PtoC )
          \psarcn(0,0){!\psRI}{!\iA\space 1 add }{\iA}}
      }%
      \psset{fillstyle=none}\pscircle{\psRI}\pscircle{!\psRI \psRII sub}
      \ignorespaces}
    \makeatother
    \begin{document}
    
    \begin{pspicture}(-4,-4)(4,4)
    \psKreis{4}{1}{50}
    \psData[green]{21}{23}
    \psData[green!70!black!90]{24}{32}
    \psData[black!80]{33}{42}
    \psData[red!80]{43}{50}
    \end{pspicture}
    
    \end{document}
    Herbert

  5. #5
    Registrierter Benutzer Avatar von localghost
    Registriert seit
    01.11.2006
    Ort
    Braunschweig
    Beiträge
    3.413

    Arrow Ansatz

    Ein Ansatz für das Diagramm könnte folgendermaßen aussehen.
    Code:
    \begin{tikzpicture}[thick]
      \draw[line width=5mm,green!75!black](0,0) +(144:2.25) arc (144:165.6:2.25cm);
      \draw[line width=5mm,green!50!white](0,0) +(165.6:2.25) arc (165.6:230.4:2.25cm);
      \draw[line width=5mm,gray](0,0) +(230.4:2.25) arc (230.4:302.4:2.25cm);
      \draw[line width=5mm,red!50!white](0,0) +(302.4:2.25) arc (302.4:360:2.25cm);
      \foreach \d in {7.2,14.4,...,360}
        \draw[lightgray] (\d:2cm)--(\d:2.5cm);
      \draw[lightgray](0,0) circle (2cm) (0,0) circle (2.5cm);
      \node(0,0) {\parbox{3cm}{\centering Ratings given by 50 participants}};
      \draw(0,0) +(0:2.8cm) node[anchor=west] {"`very bad"': 0 (0\%)};
      \draw(0,0) +(331.2:2.5cm) node[anchor=north west] {"`bad"': 8 (16\%)};
      \draw(0,0) +(266.4:2.8cm) node[anchor=north] {"`ok"': 10 (20\%)};
      \draw(0,0) +(198:2.8cm) node[anchor=north east] {"`good"': 9 (18\%)};
      \draw(0,0) +(154.8:2.8cm) node[anchor=south east] {"`very good"': 3 (6\%)};
      \draw(0,0) +(72:2.8cm) node[anchor=south] {"`none"': 20 (40\%)};
    \end{tikzpicture}
    Ist abgestimmt auf 11pt Schriftgröße. Aber das lässt sich ja anpassen.
    Geändert von localghost (04-04-2009 um 13:58 Uhr) Grund: Ergänzung.
    TeX und LaTeX, Fragen und Antworten – TeXwelt

    ¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
    ² System: openSUSE 13.1 (Linux 3.11.10), TeX Live 2013, TeXworks 0.5 (r1351)

  6. #6
    Registrierter Benutzer
    Registriert seit
    26.11.2007
    Beiträge
    79
    Vielen Dank. Das ist genau das wonach ich gesucht habe!

    Eine Frage habe ich noch. Kannst du mir die folgende Zeile ein wenig genauer erläutern?

    Code:
      \draw[line width=5mm,green!75!black](0,0) +(150:2.25) arc (150:172.5:2.25cm);
    Mich interessiert primär der hintere Abschnitt: (0,0) +(150:2.25) arc (150:172.5:2.25cm). Was steht wofür?

  7. #7
    Registrierter Benutzer Avatar von localghost
    Registriert seit
    01.11.2006
    Ort
    Braunschweig
    Beiträge
    3.413

    Arrow Erläuterung

    Beachte, dass ich den Code korrigiert habe. Beim ersten Mal stimmte die Zuordnung und die Einteilung der Einheiten nicht ganz.

    pgf/tikZ ist bei Kreisbögen etwas gewöhnungsbedürftig. Deswegen muss man sich vom Ausgangspunkt (0,0) zunächst in einem Winkel von 150° um 2.25cm entfernen. An diesem Punkt wird dann damit begonnen, den Kreisbogen von 150° bis 165.6° mit einem Radius von 2.25cm zu zeichnen. Alles weitere erklärt die aber die Anleitung ganz ausführlich.
    Geändert von localghost (04-04-2009 um 14:20 Uhr) Grund: Ergänzung.
    TeX und LaTeX, Fragen und Antworten – TeXwelt

    ¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
    ² System: openSUSE 13.1 (Linux 3.11.10), TeX Live 2013, TeXworks 0.5 (r1351)

  8. #8
    Registrierter Benutzer
    Registriert seit
    23.01.2009
    Beiträge
    40
    Hallo.

    Ich fand das Ring-Beispiel so hübsch -- und vor allem überschaubar --, dass ich es als Inhalt für eine sehr simple Query-API genommen habe, die TikZ-Code anhand von Parametern erzeugt. Vielleicht interessiert es ja den ein oder anderen hier. Ist nix Wildes, aber ich wollte damit schon länger mal rumbasteln.

    Gruß

    Marc

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •