Ich möchte gerne eine Lorenzkurve mit pgfplots erstellen. Die x-Werte sind immer gleich (von 0 bis 10), deshalb möchte ich sie irgendwo fest definieren, nur die Y-Werte sind variabel. Wie kann ich feste x-Werte von 0 - 10 definieren, ohne sie jedes Mal neu eingeben zu müssen? Ich will nur die y-Werte eingeben, geht das?

Hier ein MBB

Open in writeLaTeX
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}          
\usepackage{pgfplots}
\pgfplotsset{
    compat=newest
}
\usepgfplotslibrary{fillbetween}

\begin{document}
\begin{tikzpicture}[scale=1.2]
    \begin{axis}[%
    style=thick,
    xlabel=Menge in \%,
    ylabel=Wert in \%,
    minor tick num=1,
    xmin=0,
    ymin=0,
    xticklabels={,,20,40,60,80,100},
    grid=both,
    domain=0:10,               
    enlarge x limits=false,    % keine Verlängerung der x-Achse
    %enlarge y limits=false,   % keine Verlängerung der y-Achse
    legend pos=north west
    ]
    \addplot+[name path=P,smooth,black,mark options={black}]
    coordinates{
            (0,0)         % x-Wert 0 fest vorgeben 
        (1,42.43)     % x-Wert 1 fest vorgeben
        (2,75.68)     % x-Wert 2 fest vorgeben
        (3,82.8)      
        (4,87.59) 
        (5,91.9)
        (6,95.89) 
        (7,98.28) 
        (8,99.61) 
        (9,99.9) 
        (10,100.00)
    };
    \legend{\bfseries\textcolor{red!70!white}{A}/
    \textcolor{green!60!black}{B}/
    \textcolor{yellow!70!white}{C}-Güter}

    %Füllung
    \addplot[name path=X,draw=none]{0};  % entspricht x-Achse
    \addplot[red!70!white] fill between [of=P and X, soft
    clip={domain=0:2}];
    \addplot[green!60!black] fill between [of=P and X, soft
    clip={domain=2:6}];
    \addplot[yellow!70!white] fill between [of=P and X, soft
    clip={domain=6:10}];
    \end{axis}
\end{tikzpicture}
\end{document}

VG Thorsten

gefragt 10 Mär '14, 08:56

thor's gravatar image

thor
202715
Akzeptiert-Rate: 28%

bearbeitet 10 Mär '14, 11:11

esdd's gravatar image

esdd
15.9k164055


Du kannst die Daten als einspaltige Tabelle angeben und die x-Werte aus dem Zeilenindex berechnen lassen. Dabei hat die erste Zeile den Zeilenindex 0 und die erste Spalte analog den Spaltenindex 0. Die x-Werte würde ich dann auch gleich entsprechend der Achseneinteilung berechnen lassen, also mit dem Faktor 10.

Open in writeLaTeX
\documentclass[margin=5mm]{standalone}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}

\usepgfplotslibrary{fillbetween}

\begin{document}
\begin{tikzpicture}[scale=1.2]
  \begin{axis}[%
      style=thick,
      xlabel=Menge in \%,
      ylabel=Wert in \%,
      minor tick num=1,
      xmin=0,
      ymin=0,
      %xticklabels={,,20,40,60,80,100},% nicht nötig, wenn x-Werte entsprechend berechnet
      grid=both,
      domain=0:100,               
      enlarge x limits=false,    % keine Verlängerung der x-Achse
      %enlarge y limits=false,   % keine Verlängerung der y-Achse
      legend pos=north west
    ]
    \addplot+[name path=P,smooth,black,mark options={black}]
    table[x expr=10*\coordindex,y index=0]{
      0
      42.43
      75.68
      82.8
      87.59
      91.9
      95.89
      98.28
      99.61
      99.9
      100.00
    };
    \legend{\bfseries\textcolor{red!70!white}{A}/
    \textcolor{green!60!black}{B}/
    \textcolor{yellow!70!white}{C}-Güter}

    %Füllung
    \addplot[name path=X,draw=none]{0};  % entspricht x-Achse
    \addplot[red!70!white] fill between [of=P and X, soft
    clip={domain=0:20}];
    \addplot[green!60!black] fill between [of=P and X, soft
    clip={domain=20:60}];
    \addplot[yellow!70!white] fill between [of=P and X, soft
    clip={domain=60:100}];
  \end{axis}
\end{tikzpicture}
\end{document}

alt text

Permanenter link

beantwortet 10 Mär '14, 11:23

esdd's gravatar image

esdd
15.9k164055
Akzeptiert-Rate: 63%

Vielen vielen Dank, hat mir sehr geholfen! Thorsten

(10 Mär '14, 14:00) thor

@thor Falls das deine Frage beantwortet, kannst du die Antwort gern akzeptieren (den Haken anklicken).

(17 Mär '14, 21:35) esdd

uups, ich muss noch ein wenig lernen hier, sorry, Antwort aktzeptiert

(17 Mär '14, 22:15) thor
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:

×280

gestellte Frage: 10 Mär '14, 08:56

Frage wurde gesehen: 6,143 Mal

zuletzt geändert: 17 Mär '14, 22:15