Seite 1 von 1
Random Funktion Plotten mit tkiz oder pfgplots
Verfasst: Mi 25. Mär 2015, 11:25
von feidel
Hallo,
meine Frage ist wie kriege ich in so eine Funktion geplottet. Ich habe den Graphen mal mit Paint eingezeichnet, wie es ungefähr aussehen soll.
Ziel:
Grundgerüst
\documentclass[tikz,12pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\usepackage{lmodern}
\begin{document}
\centering
\begin{tikzpicture}[scale=1.2, thick]
%KO-System
\draw[-latex] (-6.5,0) -- (6.5,0) node[right] {$\varphi$};
\draw[-latex] (0,-0.1) node[below] {0} -- (0,6.5) node[above] {$s \left[\mathrm{\mu m}\right]$};
\draw (-6,-0.1) node[below, xshift=-1.52mm] {$-\pi$} -- (-6,0.1);
\draw (6,-0.1) node[below] {$\pi$} -- (6,0.1);
\foreach \y/\ytext in {1/5,2/10,3/15,4/20, 5/25, 6/30}
\draw (-0.1,\y) -- (0.1,\y) node[right, xshift=-1mm] {$\ytext$};
\end{tikzpicture}
\end{document}
Gibt es da eine einfache Methode?

Verfasst: Mi 25. Mär 2015, 11:32
von Besserwisser
Wo sind die Werte? Hast du in der Anleitung nachgelesen, wie man mit pgfplots eine Funktion plottet bei der man entweder die Werte oder die Funktion zur Erzeugung der Werte kennt? Hast du dir die entsprechenden Beispiele angeschaut? Was ist denn eigentlich das konkrete Problem?
Verfasst: Mi 25. Mär 2015, 11:43
von feidel
Meine Frage ist, ob es einfache Methoden gibt es mit tikz zu machen mit Hilfe des \draw Befehls oder ähnlichen.
Oder muss ich jetzt eine Funktion suchen, die meiner ähnlich ist um sie Plotten zu können. Z.B. eine Glockenfunktion mit einer Störfunktion drauf, damit man dieses Randomsprünge hat.
Oder ich kann mir auch Werte generieren lassen und die dann Plotten. Jedoch könnte es ja noch eine einfachere Methode geben....
Verfasst: Mi 25. Mär 2015, 12:03
von Besserwisser
Heißt das, du kennst weder die Funktion noch die Werte dafür, sondern suchst danach, weiß aber eigentlich schon wie man dann plottet? Sorry, aber mir ist noch immer nicht klar, was die eigentliche Frage ist.
Verfasst: Mi 25. Mär 2015, 15:04
von feidel
Ich habe es jetzt so gelöst, dass ich mir Datenpunkte generiert habe und diese dann eingelesen habe... was ich wissen wollte, ob es eine etwas feinere Methode gibt so eine Grafik herzustellen.
\documentclass[tikz,12pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\usetikzlibrary{datavisualization}
\usepackage{lmodern}
\usepackage[decimalsymbol=comma]{siunitx}
\begin{document}
\centering
\begin{tikzpicture}[scale=1.2, thick]
%KO-System
\draw[-latex] (-6.5,0) -- (6.5,0) node[right] {$\varphi$};
\draw[-latex] (0,-0.1) node[below] {0} -- (0,5.5) node[above] {$s \left[\mathrm{\mu m}\right]$};
\draw (-6,-0.1) node[below, xshift=-1.52mm] {$-\pi$} -- (-6,0.1);
\draw (6,-0.1) node[below] {$\pi$} -- (6,0.1);
\foreach \y/\ytext in {1/5,2/10,3/15,4/20, 5/25}
\draw (-0.1,\y) -- (0.1,\y) node[right, xshift=-1mm] {$\ytext$};
\datavisualization [xy Cartesian, visualize as smooth line]
data {
x, y
-6.00, 2.948
-5.95, 2.910
-5.90, 2.765
[viele weitere Datenpunkte...]
-0.10, 3.893
-0.05, 3.924
0.00, 4.405
0.05, 4.389
0.10, 3.912
[viele weitere Datenpunkte...]
5.80, 2.642
5.85, 2.628
5.90, 2.426
5.95, 2.605
6.00, 2.948
};
\end{tikzpicture}
\end{document}
Eventuell zeigt mir ja jemand noch einen anderen Weg...
Verfasst: Mi 25. Mär 2015, 15:55
von Johannes_B
Was mir zuallererst auffällt, ist das kursive Mu, welches aufrecht sein sollte. Das Paket siunitx, welches du bereits lädst hilft dir dabei.
Wenn du so einen Plot als Beispiel haben willst, und wirklich keine konkreten Werte hast, dann wirklich Gauß und Noise. Und da muss ich spontan an Jakes Antwort denken,
Filling specified area by random dots in TikZ.
Verfasst: Do 26. Mär 2015, 20:15
von feidel
Danke für den Hinweis Johannes. Ich habe es mal jetzt mit der Randomfunktion von tikz probiert und eine etwas einfachere Lösung gefunden.
\documentclass[tikz,12pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\usepackage{lmodern}
\usepackage[decimalsymbol=comma]{siunitx}
\begin{document}
\centering
\begin{tikzpicture}[scale=1.2, thick,
declare function={a(\x)=(3/4*sqrt(2*pi))*exp(-(\x*\x)*6/5)+2.25;}]
%KO-System
\draw[-latex] (-6.5,0) -- (6.5,0) node[right] {$\varphi$};
\draw[-latex] (0,-0.1) node[below] {0} -- (0,5.5) node[above] {$t \left[\si{\micro\m}\right]$};
\draw (-6,-0.1) node[below, xshift=-1.52mm] {$-\pi$} -- (-6,0.1);
\draw (-3,-0.1) node[below, xshift=-1.52mm] {$-\frac{\pi}{2}$} -- (-3,0.1);
\draw (6,-0.1) node[below] {$\pi$} -- (6,0.1);
\draw (3,-0.1) node[below] {$\frac{\pi}{2}$} -- (3,0.1);
\foreach \y/\ytext in {1/5,2/10,3/15,4/20, 5/25}
\draw (-0.1,\y) -- (0.1,\y) node[right, xshift=-1mm] {$\ytext$};
\draw plot[domain=-6:6, samples=200, thin, smooth] (\x, {a(\x)+0.12*rand*(a(\x))});
\end{tikzpicture}
\end{document}
Ich bin immer wieder begeistert, was man alles mit diesen Paket machen kann

.