4
1

Ich habe einen Plot gezeichnet mit \addplot3+ [...] ( {x*sin(0.2*pi*deg(x))},{x*cos(0.2*pi*deg(x)},{x} ), der sieht aus aus, als hätte mein Töchterchen auf einem Blatt Papier gemalt:

Spirale

Nun ist die Funktion aber dreidimensional, und ich möchte das auch erkennbar haben. Oben hatte ich noch hide axis im Code, weil ich zunächst das pure Bild sehen wollte, nun sollen Achsen hinzukommen. Und zwar so, dass man einen möglichst dreidimensionalen Eindruck erhält.

Der "Standardkasten" ist ja schonmal ein gutes Schrägbild. Ich dachte mir, man könnte die Achsen-Ebenen ein wenig Farbe geben, je nach Ebene unterschiedlich, dass sich ein besserer räumlicher Eindruck ergibt, wie wenn es wirklich ein Raum mit Wänden wäre. Endergebnis sollte natürlich dezent sein, die Funktion ist wichtiger als das Drumrum, ich möchte unterstützendes Design und keine Ablenkung. Auf dem Weg dahin zu experimentieren ist jedenfalls gut.

Nun kann man eine Achsen-Option für den Hintergrund setzen, z.B.:

axis background/.style={fill=gray!30}]

Kann man einen Hintergrund je für xy-Ebene, yz-Ebene und xz-Ebene angeben? Also wirklich die Achsenebenen, und nicht nur pauschal der Hintergrund. Shading geht an der Stelle auch. Daher hier dieses Minimalbeispiel als Start:

Open in writeLaTeX
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    axis background/.style =
      {shade, top color=white, bottom color=black!55}]
  \addplot3+ [
      domain  = 0:16*pi,
      samples = 400, samples y  = 0,
      mark    = none,
      very thick,
    ]
    ( {x*sin(0.2*pi*deg(x))},{x*cos(0.2*pi*deg(x)},{x});
  \end{axis}
\end{tikzpicture}
\end{document}

Spirale in 3D

Abgefahren wäre so etwas wie hier, wenn das geht (Quelle: xlstat.com):

Scatter Plot

Wobei es mir um die Ebenen geht, nicht um die Labels an den Achsen.

Wie weit käme man hier mit pgfplots und TikZ?

gefragt 28 Jun '14, 17:15

stefan's gravatar image

stefan ♦♦
18.3k163148
Akzeptiert-Rate: 50%

bearbeitet 28 Jun '14, 17:17


Um wenigstens die Ebenen verschieden zu färben, könnte man über die Option set layers die Nutzung von Layern aktivieren und dann im Layer axis background die jeweiligen Ebenen wie gewünscht füllen:

Open in writeLaTeX
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    set layers,
    axis line style=gray!70,
    ticklabel style=gray,
  ]
  \begin{pgfonlayer}{axis background}
      \fill[shade, top color=white, bottom color=red!15]
        (rel axis cs:0,1,0)--(rel axis cs:0,1,1)--
        (rel axis cs:0,0,1)--(rel axis cs:0,0,0)--cycle;
      \fill[shade, bottom color=white, top color=orange!15]
        (rel axis cs:0,1,0)--(rel axis cs:1,1,0)--
        (rel axis cs:1,0,0)--(rel axis cs:0,0,0)--cycle;
      \fill[shade, top color=white, bottom color=yellow!15]
        (rel axis cs:0,1,0)--(rel axis cs:1,1,0)--
        (rel axis cs:1,1,1)--(rel axis cs:0,1,1)--cycle;
  \end{pgfonlayer}
  \addplot3+ [
    domain  = 0:16*pi,
    samples = 400, samples y  = 0,
    mark    = none,
    very thick,
  ]
    ( {x*sin(0.2*pi*deg(x))},{x*cos(0.2*pi*deg(x)},{x});
  \end{axis}
\end{tikzpicture}
\end{document}

alt text

Permanenter link

beantwortet 28 Jun '14, 23:31

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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

Frage-Themen:

×298
×28
×20

gestellte Frage: 28 Jun '14, 17:15

Frage wurde gesehen: 14,815 Mal

zuletzt geändert: 28 Jun '14, 23:31