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 |
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}
beantwortet 10 Mär '14, 11:23 esdd 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
|