Hallo liebe Latex-Freunde,

ich bin gerade dabei einige Phasendiagramme zu erzeugen, wie beispielsweise dieses hier: alt text

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?

gefragt 24 Apr '14, 11:01

Ross's gravatar image

Ross
355522
Akzeptiert: 86%

bearbeitet 18 Jul '14, 07:55

cis's gravatar image

cis
5.4k860169


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}

alt text

Permanenter link

beantwortet 24 Apr '14, 11:40

cis's gravatar image

cis
5.4k860169

bearbeitet 24 Apr '14, 18:17

esdd's gravatar image

esdd
14.2k53251

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 axis y line=left?

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}

alt text

Permanenter link

beantwortet 24 Apr '14, 14:38

cfeuersaenger's gravatar image

cfeuersaenger
97723

bearbeitet 25 Apr '14, 09:17

esdd's gravatar image

esdd
14.2k53251

1

@cfeuersaenger Ich habe deinen Kommentar in eine Antwort umgewandelt, weil er meiner Meinung nach das Überlappungsproblem am einfachsten löst.

(25 Apr '14, 09:20) esdd
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

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üge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×492
×160
×1

Frage gestellt: 24 Apr '14, 11:01

Frage wurde angeschaut: 2,337 Mal

Zuletzt aktualisiert: 18 Jul '14, 07:55