Seite 1 von 1

PGFPlot 3D

Verfasst: Do 12. Feb 2015, 10:39
von kannstmasehn
Moin,
folgendes Problem habe ich:

Ich möchte aus einer Datei Koordinaten für ein 3D-Plot lesen, zeichnen lassen und dann auswerten. Lesen und schreiben bekomme ich hin. Über die Option 'scatter' kann ich auch die Punkte in Abhängigkeit der Koordinaten farblich kenntlich machen. So wie ich das sehe benutzt er bei 'scatter' in meinem Fall die z-Achse. Dann habe ich die Option 'scatter src' gefunden, aber nicht die richtige Einstellung, um z.B. eine Kombination aller drei Achsen anzeigen zu lassen. Bspw. soll das Produkt aus x,y und z gebildet werden und danach die Farbe gewählt werden. Ist das irgendwie möglich? Das größte Ergebnis wäre dann z.B. rot und das kleinste blau. Zusätzlich möchte ich die einzelnen Punkte noch benennen. Eine unsortierte Benennung sollte kein Problem sein, eine sortierte Benennung nach der Größe des Produktes vielleicht schwieriger. Kann mir da jemand helfen? Vielen Dank dafür!

Hier mein Minimalbeispiel:
\documentclass{scrbook}
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}


\begin{document}
\begin{tikzpicture}
\begin{axis}[colorbar]
		% first3d.txt enthält:
		%---------
		% 0 0 0.8
		% 1 0 0.56
		% 2 0 0.5
		% 3 0 0.75
		%
		% 0 1 0.6
		% 1 1 0.3
		% 2 1 0.21
		% 3 1 0.3
		%
		% 0 2 0.68
		% 1 2 0.22
		% 2 2 0.25
		% 3 2 0.4
		%
		% 0 3 0.7
		% 1 3 0.5
		% 2 3 0.58
		% 3 3 0.9
		% -> yields a 4x4 matrix:
\addplot3[only marks, scatter] file {first3d.txt}; 
\end{axis}
\end{tikzpicture}
\end{document}

Verfasst: Sa 14. Feb 2015, 17:56
von esdd
Hier ist ein Vorschlag für die farbige Darstellung in Abhängigkeit vom Produkt der drei Koordinaten:
\begin{filecontents*}{first3d.txt}
0 0 0.8 
1 0 0.56 
2 0 0.5 
3 0 0.75 

0 1 0.6 
1 1 0.3 
2 1 0.21 
3 1 0.3 

0 2 0.68 
1 2 0.22 
2 2 0.25 
3 2 0.4 

0 3 0.7 
1 3 0.5 
2 3 0.58 
3 3 0.9 
\end{filecontents*}
\documentclass[margin=10pt]{standalone} 
\usepackage{pgfplots} 
\pgfplotsset{compat=newest} 
\begin{document} 
\begin{tikzpicture} 
\begin{axis}[colorbar] 
\addplot3[only marks, scatter,scatter src=\thisrowno{0}*\thisrowno{1}*\thisrowno{2}] table {first3d.txt}; 
\end{axis} 
\end{tikzpicture} 
\end{document} 
Bild

Das mit der Benennung habe ich allerdings nicht verstanden.

Gruß
Elke

Verfasst: Mo 16. Feb 2015, 07:42
von kannstmasehn
Super, vielen Dank dafür! Genau das habe ich gesucht. Das mit der Bezeichnung bekomme ich selber hin, danke sehr!