Gnuplot: วิธีหลีกเลี่ยงระยะขอบสีขาวใน PDF ผ่านการปรับขนาดหน้าและพารามิเตอร์อื่น ๆ

นี่คือรหัสของฉัน:

set term pdfcairo enhanced dashed size 5,3;
set output "plot.pdf";
f(x,y)=sin(1.3*x)*cos(.9*y)+cos(.8*x)*sin(1.9*y)+cos(y*.2*x)
set size square
set xrange [-5:5]
set yrange [-5:5]
set contour base
set cntrparam level incremental -3, 0.5, 3
set palette rgbformulae 33,13,10
set pm3d map
set isosample 250, 250
unset key
set lmargin at screen 0.1;
set rmargin at screen 0.95;
set bmargin at screen 0.2;
set tmargin at screen 0.95;
splot f(x,y) with pm3d

นี่คือโครงเรื่องที่เกี่ยวข้อง:

ป้อนคำอธิบายรูปภาพที่นี่

มีขอบสีขาวรอบแปลง ฉันจะกำจัดระยะขอบสีขาวเหล่านี้ด้วยการแก้ไขโค้ด gnuplot ได้อย่างไร


person Changwang Zhang    schedule 06.05.2014    source แหล่งที่มา
comment
pm3d และ set margins ไม่ชอบกัน ฉันขอแนะนำสองตัวเลือก: 1) คุณใช้ plot ... with image ซึ่งคุณไม่สามารถใช้ฟังก์ชันได้ ดังนั้นจะต้องส่งออกข้อมูลของคุณโดยใช้ table ซึ่งจะทำให้คุณสามารถกำหนดระยะขอบได้โดยไม่มีปัญหา 2) คุณใช้ยูทิลิตี้ภายนอกเพื่อตัด PDF ปกติฉันใช้ pdfcrop   -  person Miguel    schedule 07.05.2014
comment
ตัวเลือกที่สาม (น่าเกลียด): 3) แก้ไขแอตทริบิวต์ size ของโครงเรื่องให้มีขนาดใหญ่กว่า set size 1,1 เช่น set size 1.5,1.25 จนกว่าคุณจะได้ภาพที่เหมาะกับสิ่งที่คุณชอบ สิ่งนี้ไม่เป็นระบบมากนักและจำเป็นต้องลองผิดลองถูกมากมาย จากทั้งสามตัวเลือก ฉันใช้ 1) ตัวเอง   -  person Miguel    schedule 07.05.2014
comment
ฉันพยายามตั้งค่าขนาดหน้าในเทอร์มินัล แต่ฉันพบว่าไม่สามารถลบระยะขอบได้ทั้งหมด หากฉันสามารถกำหนดตำแหน่งของรูปภาพในหน้าได้ ฉันสามารถลบระยะขอบออกได้อย่างสมบูรณ์ ฉันไม่รู้ว่ามีฟังก์ชั่นดังกล่าวใน Gnuplot หรือไม่: กำหนดตำแหน่งรูปภาพในเพจ   -  person Changwang Zhang    schedule 07.05.2014
comment
@Miguel การลงจุดด้วยรูปภาพสามารถทำได้ด้วยฟังก์ชั่น: plot '++' using 1:2:(f($1,$2)) แต่น่าเสียดายที่ plot ไม่รองรับรูปทรง ซึ่งโดยปกติแล้วจะแปลงเป็น 2d   -  person Christoph    schedule 07.05.2014
comment
@Christoph ฉันไม่รู้ว่าไฟล์จำลองยอมรับตัวแปรสองตัวมีประโยชน์มาก!   -  person Miguel    schedule 07.05.2014
comment
มีวิธีแก้ไขด้วยรูปภาพเช่น set pm3d interpolate 0,0.0 หรือไม่ ฉันกำลังวางแผนจากไฟล์ข้อมูลจริงๆ   -  person Changwang Zhang    schedule 07.05.2014
comment
@Leo ไม่ใช่ขนาดเทอร์มินัล แต่เป็นขนาดตัวเลขที่ฉันแนะนำให้เปลี่ยน จากนั้นคุณสามารถชดเชยตำแหน่งของพล็อตโดยใช้ set origin ซึ่งโดยค่าเริ่มต้นคือ set origin 0,0 เพื่อให้รูปของคุณอยู่ตรงกลาง หากคุณทำ set size 1.5,1.25 คุณควรชดเชยด้วย set origin -0.25,-0.125   -  person Miguel    schedule 07.05.2014
comment
@Leo ดูคำถามเก่าของฉันและคำตอบของ Christoph: stackoverflow.com/questions/18771210/   -  person Miguel    schedule 07.05.2014


คำตอบ (1)


ขอบคุณมิเกล

ตอนนี้ฉันตั้งค่าขนาดหน้าและระยะขอบแล้ว หลังจากการทดสอบหลายครั้ง:

set term pdfcairo enhanced dashed size 3.2,3;
set output "plot.pdf";
f(x,y)=sin(1.3*x)*cos(.9*y)+cos(.8*x)*sin(1.9*y)+cos(y*.2*x)
set size square
set xrange [-5:5]
set yrange [-5:5]
set contour base
set cntrparam level incremental -3, 0.5, 3
set palette rgbformulae 33,13,10
set pm3d map
set isosample 250, 250
unset key
set lmargin at screen 0.05;
set rmargin at screen 0.9;
set bmargin at screen 0.1;
set tmargin at screen 0.95;
splot f(x,y) with pm3d

นี่คือรูป:

ป้อนคำอธิบายรูปภาพที่นี่

person Changwang Zhang    schedule 07.05.2014