pgfplot: Jedes n-te Wertepaar mit Sample Funktion plotten

Tabellen und Grafiken erstellen und anordnen


pegasus87
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Do 8. Jun 2017, 15:27

pgfplot: Jedes n-te Wertepaar mit Sample Funktion plotten

Beitrag von pegasus87 »

Hallo Zusammen,
ich habe eine Kurve aus beliebigvielen Punkten und möchte im Plot nur jeden n-ten Punkt mit der Sample Funktion darstellen.

D.h. ich möchte die im Minibeispiel angehängte Funktion genauso fein plotten, aber die Marker der Sample Funktion auf z.B. 10 Stk. limitieren können.

Gibt es eine Möglichkeit das umzusetzen ?


Grüße

pegasus

\documentclass[a4paper]{article}
\usepackage{pstricks}
\usepackage{pgfplots}
\usepackage{subcaption}
\usepackage{tikz}
\usetikzlibrary{intersections}
\usepackage{filecontents}
\pgfplotsset{compat=1.5}
\usepackage{csquotes}


\begin{filecontents}{test4.dat}
	x            y
	0.00        1.0000   
	0.01        0.9831   
	0.02        0.9599   
	0.03        0.9719   
	0.04        0.9572   
	0.05        0.9283   
	0.06        1.0090   
	0.07        1.0142   
	0.08        1.0345   
	0.09        0.9303   
	0.10        0.9502   
	0.11        0.9220   
	0.12        0.8955   
	0.13        0.9415   
	0.14        0.9763   
	0.15        0.9202   
	0.16        0.9131   
	0.17        0.9028   
	0.18        0.9331   
	0.19        0.9301   
	0.20        0.9100   
	0.21        0.9817   
	0.22        0.9715   
	0.23        0.9758   
	0.24        1.0254   
	0.25        0.9807   
	0.26        1.0211   
	0.27        1.0374   
	0.28        1.0357   
	0.29        1.0789   
	0.30        1.1140   
	0.31        1.1735   
	0.32        1.1788   
	0.33        1.2679   
	0.34        1.2515   
	0.35        1.1390   
	0.36        1.0966   
	0.37        1.1250   
	0.38        1.1485   
	0.39        1.1710   
	0.40        1.1265   
	0.41        1.0565   
	0.42        1.1200   
	0.43        1.1349   
	0.44        1.1892   
	0.45        1.1238   
	0.46        1.1619   
	0.47        1.2652   
	0.48        1.2351   
	0.49        1.2125   
	0.50        1.1996   
	0.51        1.1542   
	0.52        1.1157   
	0.53        1.0923   
	0.54        1.1220   
	0.55        1.1387   
	0.56        1.1127   
	0.57        1.1711   
	0.58        1.2192   
	0.59        1.2971   
	0.60        1.3228   
	0.61        1.4058   
	0.62        1.3516   
	0.63        1.3132   
	0.64        1.3098   
	0.65        1.2550   
	0.66        1.2503   
	0.67        1.2592   
	0.68        1.1778   
	0.69        1.1043   
	0.70        1.0602   
	0.71        1.1036   
	0.72        1.1313   
	0.73        1.0859   
	0.74        1.1260   
	0.75        1.0937   
	0.76        0.9938   
	0.77        0.9589   
	0.78        0.9889   
	0.79        0.9515   
	0.80        0.9872   
	0.81        0.9859   
	0.82        1.0067   
	0.83        0.9849   
	0.84        0.9412   
	0.85        0.9415   
	0.86        0.9258   
	0.87        0.9544   
	0.88        0.9903   
	0.89        0.9589   
	0.90        0.9729   
	0.91        0.9543   
	0.92        0.8858   
	0.93        0.9268   
	0.94        0.9463   
	0.95        0.9803   
	0.96        0.9982   
	0.97        0.9428   
	0.98        0.9336   
	0.99        0.9416   
	1.00        0.9324   
	1.01        0.9782   
	1.02        1.0257   
	1.03        0.9994   
	1.04        0.9309   
	1.05        0.9431   
	1.06        0.9078   
	1.07        0.8936   
	1.08        0.9638   
	1.09        0.9270   
	1.10        0.9361   
	1.11        0.8893   
	1.12        0.8487   
	1.13        0.8415   
	1.14        0.8325   
	1.15        0.7928   
	1.16        0.8982   
	1.17        0.9208   
	1.18        0.9031   
	1.19        0.9394   
	1.20        0.9780   
	1.21        1.0201   
	1.22        1.0388   
	1.23        1.0099   
	1.24        0.9598   
	1.25        0.9257   
	1.26        0.9259   
	1.27        0.9213   
	1.28        0.9666   
	1.29        1.0795   
	1.30        1.1582   
	1.31        1.1078   
	1.32        1.0769   
	1.33        1.0417   
	1.34        1.0789   
	1.35        1.1413   
	1.36        1.1312   
	1.37        1.1485   
	1.38        1.2122   
	1.39        1.1624   
	1.40        1.2181   
	1.41        1.2310   
	1.42        1.2454   
	1.43        1.2008   
	1.44        1.2247   
	1.45        1.2429   
	1.46        1.1973   
	1.47        1.1584   
	1.48        1.1977   
	1.49        1.1041   
	1.50        1.0637   
	1.51        1.0773   
	1.52        1.0605   
	1.53        1.1444   
	1.54        1.1594   
	1.55        1.1598   
	1.56        1.1760   
	1.57        1.1663   
	1.58        1.0802   
	1.59        1.0731   
	1.60        1.1131   
	1.61        1.1944   
	1.62        1.1829   
	1.63        1.1575   
	1.64        1.1597   
	1.65        1.1566   
	1.66        1.2054   
	1.67        1.1908   
	1.68        1.2405   
	1.69        1.2164   
	1.70        1.1820   
	1.71        1.2174   
	1.72        1.1512   
	1.73        1.1111   
	1.74        1.0675   
	1.75        1.0242   
	1.76        1.0884   
	1.77        1.0611   
	1.78        1.0906   
	1.79        1.1480   
	1.80        1.0936   
	1.81        1.0853   
	1.82        1.1657   
	1.83        1.1658   
	1.84        1.2159   
	1.85        1.0777   
	1.86        1.1777   
	1.87        1.2206   
	1.88        1.1620   
	1.89        1.1863   
	1.90        1.2497   
	1.91        1.2834   
	1.92        1.3511   
	1.93        1.3368   
	1.94        1.2692   
	1.95        1.2340   
	1.96        1.2745   
	1.97        1.3312   
	1.98        1.4111   
	1.99        1.4702   
	2.00        1.4199   
\end{filecontents}


\begin{document}

\begin{center}
	\begin{tikzpicture}
\begin{axis}[
%ymin=0,
%ymax=3.0e-5,
%xmin=0,
%xmax=60,
width=12cm,
height=8cm,
title=Inv. cum. normal,
xlabel={$x$},
ylabel={$y$},
grid=major,
legend entries={$d=2$,$d=3$,$d=4$}
]
\addplot+ [blue] table {test4.dat};
%\addplot+ [samples=10] table {test4.dat};
\end{axis}
\end{tikzpicture}
\end{center}

\end{document}

Stamm

Passende Option

Beitrag von Stamm »

Du suchst wohl so etwas wie die Option each nth point für \addplot (vgl. S. 390 der aktuellen Anleitung von Version 1.14).

pegasus87
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Do 8. Jun 2017, 15:27

Beitrag von pegasus87 »

Hallo Stamm,

danke für die Info. Dies ist in etwa das was ich suche. Weisst du ob die Daten beim kompilieren auch weniger Speicher benötigen ?

Gruss
pegasus

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

pegasus87 hat geschrieben: ich habe eine Kurve aus beliebigvielen Punkten und möchte im Plot nur jeden n-ten Punkt mit der Sample Funktion darstellen.

D.h. ich möchte die im Minibeispiel angehängte Funktion genauso fein plotten, aber die Marker der Sample Funktion auf z.B. 10 Stk. limitieren können.
Mir ist jetzt nicht klar, ob Du wirklich nur jeden n-ten Punkt plotten willst, d.h. die Punkte dazwischen vollständig ignorieren möchtest. Dann ist das von Stamm genannte each nth point das richtige für Dich.

Dein zweiter Satz hört sich aber so an, als würdest Du schon gern alle Datenpunkte plotten, aber nur jeden n-ten mit einem Marker versehen wollen. Das ginge mit mark repeat=20, wenn nur jeder 20. geplottete Datenpunkt mit einem Marker versehen werden soll. Mit mark phase kann man den ersten Punkt vorgeben, der einen Marker erhalten soll. Es ist auch möglich manuell die Koordinatenindizes vorzugeben, die einen Marker erhalten sollen, beispielsweise mark indices={10,100,150}.

Antworten