2016-07-31 6 views
1

Ich habe einen Datensatz, der von einem Vektor f (x, y, z) ist. Formatiert als fx fy fz x y. Dieser Datensatz besteht aus einem Kristallgitter und dem zugehörigen reziproken Gitter. Die Koordinaten xy sind nicht orthogonal. So dass x und y Einheitsvektoren x = (1,0) y = (0,5, sqrt (3)/2) sind. Ich versuche einen Satz von 3 Heatmaps für jede Komponente von f zu erstellen. Mein Problem ist, dass ich die X- und Y-Achse so ändern kann, dass sie die obigen Einheitsvektoren sind. Gibt es eine Möglichkeit, nicht-orthogonale/senkrechte Achsen in gnuplot zu erstellen? Wenn nicht, hat jemand irgendwelche Ideen, wie man diesen Datensatz darstellt?Gnuplotting Achse ändern

Vielen Dank im Voraus

Antwort

0

Was Sie tun können, ist, die die Achsen nicht ändern, aber eine Änderung der Variablen aus dem Spalten 4 und 5 zu den kartesischen Koordinaten x, y gilt:

ex_x=1; ex_y=0 
ey_x=0.5; ey_y=sqrt(3)/2 
splot "file.dat" u (ex_x*$4+ey_x*$5):(ey_y*$4,ey_y*$5):1 with pm3d 
+0

Vielen Dank für die Antwort, Also habe ich das wirklich hart in den Code eingearbeitet. Auf der Post-Processing-Seite ist es jedoch besser. http://imgur.com/a/VJd72 Hier ist ein Link zu zwei der Arten von Graphen in ihren Kinderstadien. Am einfachsten ist es auf dem Vektor-Plot zu sehen. Es gibt eine Tonne von weißem Raum, die das Bild ablenkt. Ich hatte gehofft, dass ich das entfernen könnte, aber ich denke, ich werde einfach um jeden Cluster herumgehende Vektoren zeichnen müssen. – user3758325

+0

Ich bin mir nicht sicher, ob ich verstehe, wonach Sie suchen. Ein Hinweis: Wenn ich richtig verstehe, dass der Vektor "f" in einem großen Teil der Zeichnungsdomäne Null ist, möchten Sie vielleicht, dass die Vektoren auf einer Farbkarte des Moduls "| f |" überlagert werden. – Joce

+0

Oder wenn es die weißen Dreiecke oben und unten sind, die lästig sind, können Sie den Rand entfernen und Ihre eigenen Achsen mit 'set arrow' und einer' for' Schleife für Etiketten und Tics zeichnen. – Joce

Verwandte Themen