ฉันมีรูป matplotlib ซึ่งฉันกำลังพล็อตข้อมูลที่มักเรียกว่านาโนวินาที (1e-9) บนแกน y ถ้าฉันมีข้อมูลที่มีค่าหลายสิบนาโนวินาทีเช่น 44e-9 ค่าบนแกนจะแสดงเป็น 4.4 โดยมี + 1e-8 เป็นค่าชดเชย มีการบังคับให้แกนแสดง 44 ด้วยออฟเซ็ต + 1e-9 หรือไม่?
เช่นเดียวกันกับแกน x ของฉันที่แกนแสดง + 5.54478e4 โดยที่ฉันอยากให้มันแสดงค่าออฟเซ็ตเป็น +55447 (จำนวนเต็มไม่มีทศนิยม - ค่าในที่นี้คือวัน)
ฉันได้ลองสองสามสิ่งดังนี้:
p = axes.plot(x,y)
p.ticklabel_format(style='plain')
สำหรับแกน x แต่มันใช้ไม่ได้แม้ว่าฉันอาจจะใช้มันไม่ถูกต้องหรือตีความบางอย่างจากเอกสารผิดใครบางคนสามารถชี้ฉันไปในทิศทางที่ถูกต้องได้ไหม
ขอบคุณโจนาธาน
ฉันพยายามทำอะไรบางอย่างกับฟอร์แมต แต่ยังไม่พบวิธีแก้ปัญหาใด ๆ ... :
myyfmt = ScalarFormatter(useOffset=True)
myyfmt._set_offset(1e9)
axes.get_yaxis().set_major_formatter(myyfmt)
และ
myxfmt = ScalarFormatter(useOffset=True)
myxfmt.set_portlimits((-9,5))
axes.get_xaxis().set_major_formatter(myxfmt)
จากบันทึกด้านข้างฉันสับสนจริงๆว่าวัตถุ 'offset number' อยู่ที่ไหน ... มันเป็นส่วนหนึ่งของเห็บหลัก / รองหรือไม่?
set_units
หรือยัง? matplotlib.sourceforge.net/api/… (ฉันไม่สามารถลองได้เพราะฉันไม่มี matplotlib ที่นี่)