สถิติ gnuplot พร้อมข้อมูลเวลา (แปลงจากสตริงเป็นทศนิยม) ล้มเหลวเป็นอาร์กิวเมนต์เดียว

ฉันมีไฟล์ข้อมูลที่มีข้อมูลเวลาเป็นหนึ่งคอลัมน์ เนื่องจากคำสั่ง stats เข้ากันไม่ได้กับข้อมูลเวลา (Stats command not available in timedata mode) เราจึงต้องทำการแปลงก่อน:

set xdata
stats 'data' u (strptime(fmt,strcol(1)))

อย่างไรก็ตามสิ่งนี้ไม่ได้ผล gnuplot พิมพ์ข้อผิดพลาดต่อไปนี้: All points out of range

ฉันไม่รู้ว่าทำไม แต่ฉันมีความคิดที่จะใช้เสาเทียมอันที่สอง:

stats 'data' u (strptime(fmt,strcol(1))):(1.0)

ซึ่งทำงานได้ตามที่ตั้งใจไว้ (ทำไม?) แต่มีคอลัมน์ที่สองที่ไม่จำเป็น สำหรับฉัน "วิธีแก้ปัญหา" นี้ก็โอเค เพราะฉันไม่มีไฟล์ข้อมูลขนาดใหญ่ให้ลงจุด แต่ถ้ามีคน... นี่อาจเป็นเรื่องที่น่ารำคาญทีเดียว

ฉันพลาดอะไรบางอย่างไป
เหตุใดสถิติ gnuplot จึงมีพฤติกรรมเช่นนี้
นี่เป็นข้อบกพร่องหรือไม่ และคุ้มค่าที่จะรายงานหรือไม่


person nox    schedule 30.01.2016    source แหล่งที่มา


คำตอบ (1)


อาจเป็นไปได้ว่าคุณได้ตั้งค่า yrange ก่อนที่จะเรียกใช้คำสั่ง stats หากคุณเรียก stats ด้วยคอลัมน์เดียว ข้อมูลจะถือเป็นคอลัมน์ y ในการเรียกครั้งที่สอง คุณจะต้องระบุคอลัมน์ที่สองที่ชัดเจน และข้อมูลเวลาจะถือเป็นคอลัมน์ x

กำลังโทร

reset
fmt = "%Y..."
stats 'data' u (strptime(fmt,strcol(1)))

ควรทำงานได้ดี

person Christoph    schedule 30.01.2016
comment
ว้าว การทำความเข้าใจข้อความแสดงข้อผิดพลาดเป็นสิ่งสำคัญมาก นั่นแก้ไขมันได้ :D ขอบคุณ! - person nox; 30.01.2016
comment
ตอนแรกฉันพบว่ามันขัดกับสัญชาตญาณ แต่ plot "data" using 1 ก็ถือว่าคอลัมน์ที่กำหนดนี้เป็น y-data ด้วย ในเอกสารประกอบ 5.0 ประเด็นนี้ได้รับการชี้แจง - person Christoph; 30.01.2016