Vektor gnuplot tidak mengikuti data plot

Oct 04 2020

Saya sebenarnya telah menyelesaikan ini selama satu jam tentang mengapa plot data ini:

  8.000000  -5.409915   8.000000   2.154234
 -8.000000  -5.409915   8.000000  -5.409915
 -8.000000   2.154234  -8.000000  -5.409915
  8.000000   2.154234  -8.000000   2.154234
  8.000000  -6.386620   8.000000   1.177529
 -8.000000  -6.386620   8.000000  -6.386620
 -8.000000   1.177529  -8.000000  -6.386620
 -8.000000  -6.386620  -8.000000   1.177529

menjadikan ini:

Ini diplot dengan $ gnuplot -e "set term png; plot 'file.dat' using 1:2:3:4 with vectors nohead" > tt.png"

Kolom pertama dari file data memberi tahu di mana ekor vektor di mana x mendarat dan yang kedua di mana y mendarat. Kolom ketiga dan keempat, masing-masing x dan y, memberi tahu di mana kepala vektor mendarat.

Saya telah menggunakan nilai x yang sama dari ekor vektor dan saya pikir inilah penyebabnya. Jika itu benar-benar penyebabnya maka itu pasti bug, tapi saya ragu itu bukan karena dalam matematika, suatu fungsi mengambil X dan memetakannya ke Y. Satu X tidak bisa memberikan dua hasil yang berbeda.

Untuk memberikan gambaran tentang apa yang saya inginkan dengan plot data ini adalah membuat segmen garis dari (x1, y1) ke (x2, y2), dan vektor sepertinya yang saya butuhkan untuk ini.

gnuplot 5.2 patchlevel 8

Jawaban

2 Ethan Oct 05 2020 at 00:46

Gaya with vectorsplot mengambil empat kolom data:

  x y delta-x delta-y

Jika file data Anda berisi koordinat titik akhir di kolom 3 dan 4 daripada delta, Anda dapat menangani ini menggunakan perintah

  plot $data using 1:2:($3-$1):($4-$2) with vectors

dimana seperti biasa "$ 4" adalah kependekan dari "kolom (4)"