เวกเตอร์ Gnuplot ไม่เป็นไปตามข้อมูลพล็อต

Oct 04 2020

ฉันได้แก้ปัญหานี้เป็นเวลาหนึ่งชั่วโมงแล้วว่าเหตุใดจึงมีพล็อตข้อมูลนี้:

  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

แสดงสิ่งนี้:

สิ่งนี้ถูกพล็อตด้วย $ gnuplot -e "set term png; plot 'file.dat' using 1:2:3:4 with vectors nohead" > tt.png"

คอลัมน์แรกของไฟล์ข้อมูลจะบอกตำแหน่งที่หางของเวกเตอร์ที่ x มันตกลงมาและวินาทีที่ y มันตกลงมา คอลัมน์ที่สามและสี่ x และ y ตามลำดับบอกตำแหน่งที่ส่วนหัวของเวกเตอร์ตกลงมา

ฉันใช้ค่า x เท่ากันของหางของเวกเตอร์และฉันคิดว่านี่คือสาเหตุของมัน ถ้ามันเป็นสาเหตุจริงๆก็ต้องเป็น bug แต่ฉันสงสัยว่ามันไม่ใช่เพราะในทางคณิตศาสตร์ฟังก์ชันใช้ X และแมปกับ Y X ตัวเดียวไม่สามารถให้ผลลัพธ์ที่ต่างกันสองอย่างได้

ในการให้แนวคิดเกี่ยวกับสิ่งที่ฉันต้องการกับพล็อตข้อมูลนี้คือการสร้างส่วนของเส้นตรงจาก (x1, y1) ถึง (x2, y2) และเวกเตอร์ดูเหมือนว่าฉันต้องการสิ่งนี้

gnuplot 5.2 ระดับแพตช์ 8

คำตอบ

2 Ethan Oct 05 2020 at 00:46

with vectorsสไตล์พล็อตใช้เวลาสี่คอลัมน์ของข้อมูล:

  x y delta-x delta-y

หากไฟล์ข้อมูลของคุณมีพิกัดปลายทางในคอลัมน์ 3 และ 4 แทนที่จะเป็นเดลต้าคุณสามารถจัดการกับสิ่งนี้ได้โดยใช้คำสั่ง

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

โดยที่ปกติ "$ 4" จะสั้นสำหรับ "คอลัมน์ (4)"