Hallo liebe Latex-Freunde, ich bin gerade dabei einige Phasendiagramme zu erzeugen, wie beispielsweise dieses hier: Open in writeLaTeX
\documentclass[margin=2mm,tikz]{standalone} \usepackage{tikz} \usepackage{pgfplots} \begin{document} \def\lengthI{sqrt(1+(y+x^2)^2)} \begin{tikzpicture} \begin{axis}[ axis lines=middle, xmin=-1, xmax=2, ymin=0, ymax=14, xlabel=$t$, ylabel=$y$, ytick={1,3.5,5,10}, view={0}{90},samples=15,domain=-1:2, y domain=0:14, %for direction field ] \addplot3 [blue,-stealth, quiver={u={1/\lengthI}, v={(y+x^2)/\lengthI}, scale arrows=.6 }] (x,y,0); \end{axis} \end{tikzpicture} \end{document} Mein Problem hierbei ist, dass ich gerne einige Pfeile weglassen würde, wie z.B. die welche hinter den Achsenbeschriftungen sind oder die hinter den "tikz". Gibt es einen simplen Befehl, wie man bestimmte Regionen definieren kann in denen keine Pfeile abgebildet werden sollen bzw. einen Befehl, mit dem man einzelne Pfeile entfernen kann? Oder kann mir Jemand von Euch evtl. einen anderen Rat geben, wie ich mein Problem lösen könnte? |
Anstatt jetzt eine, sicher nicht ganz einfache, Sache auszutüfteln:
Wie wäre es mit ein paar Feinschliffen? Vorschlag (kann natürlich beliebig weiter verfeinert werden): Open in writeLaTeX
\documentclass[margin=2mm,tikz]{standalone} \usepackage{tikz} \usepackage{pgfplots} \begin{document} \def\lengthI{sqrt(1+(y+x^2)^2)} \begin{tikzpicture}[] \begin{axis}[ axis lines=middle, xmin=-1.25, xmax=2.25, ymin=0, ymax=14, xlabel=$t$, xlabel style={below=5pt, fill=white}, ylabel=$y$, ylabel style={left=4pt}, %NEU ytick={1,3.5,5,10}, view={0}{90},samples=15,domain=-1:2, y domain=0:14, %for direction field yticklabel style={draw=none, inner sep=3pt, fill=lightgray, text opacity=1} %NEU ] \addplot3 [blue,-stealth, quiver={u={1/\lengthI}, v={(y+x^2)/\lengthI}, scale arrows=.6 }] (x,y,0); \end{axis} \end{tikzpicture} \end{document} |
Du koenntest einen Koordinatenfilter bauen, der den gewuenschten Effekt hat. Allerdings denke ich, dass der von @cis vorgeschlagene Weg besser ist - immerhin moechtest Du ja nicht suggerieren, dass an den blanken stellen die Vektoren deshalb nicht sichtbar sind, weil sie Laenge 0 haben. Warum schiebst Du nicht einfach die y Achse nach links mit Open in writeLaTeX
\documentclass[margin=2mm]{standalone} \usepackage{pgfplots} \pgfplotsset{compat=newest} \begin{document} \def\lengthI{sqrt(1+(y+x^2)^2)} \begin{tikzpicture} \begin{axis}[ axis lines=left, xmin=-1, xmax=2, ymin=0, ymax=14, xlabel=$t$, ylabel=$y$, ytick={1,3.5,5,10}, view={0}{90},samples=15,domain=-1:2, y domain=0:14, %for direction field ] \addplot3 [blue,-stealth, quiver={u={1/\lengthI}, v={(y+x^2)/\lengthI}, scale arrows=.6 }] (x,y,0); \end{axis} \end{tikzpicture} \end{document} beantwortet 24 Apr '14, 20:38 cfeuersaenger esdd 1
@cfeuersaenger Ich habe deinen Kommentar in eine Antwort umgewandelt, weil er meiner Meinung nach das Überlappungsproblem am einfachsten löst.
(25 Apr '14, 15:20)
esdd
|