ฉันมีพล็อตเส้นที่เรียบง่ายและต้องการย้ายเห็บแกน y จากด้านซ้าย (ค่าเริ่มต้น) ของพล็อตไปทางด้านขวา มีความคิดเกี่ยวกับวิธีการทำอย่างไร
ฉันมีพล็อตเส้นที่เรียบง่ายและต้องการย้ายเห็บแกน y จากด้านซ้าย (ค่าเริ่มต้น) ของพล็อตไปทางด้านขวา มีความคิดเกี่ยวกับวิธีการทำอย่างไร
คำตอบ:
ใช้ ax.yaxis.tick_right()
ตัวอย่างเช่น:
from matplotlib import pyplot as plt
f = plt.figure()
ax = f.add_subplot(111)
ax.yaxis.tick_right()
plt.plot([2,3,4,5])
plt.show()
sharey=True
แต่พักนี้ถ้าคุณมีย่อยด้วย
สำหรับฉลากที่ถูกต้องใช้ax.yaxis.set_label_position("right")
เช่น:
f = plt.figure()
ax = f.add_subplot(111)
ax.yaxis.tick_right()
ax.yaxis.set_label_position("right")
plt.plot([2,3,4,5])
ax.set_xlabel("$x$ /mm")
ax.set_ylabel("$y$ /mm")
plt.show()
คำตอบของ joaquin ใช้งานได้ แต่มีผลข้างเคียงในการลบเห็บจากด้านซ้ายของแกน เพื่อแก้ไขปัญหานี้ติดตามด้วยการเรียกร้องให้tick_right()
set_ticks_position('both')
ตัวอย่างที่แก้ไข:
from matplotlib import pyplot as plt
f = plt.figure()
ax = f.add_subplot(111)
ax.yaxis.tick_right()
ax.yaxis.set_ticks_position('both')
plt.plot([2,3,4,5])
plt.show()
ผลลัพธ์ที่ได้คือพล็อตที่มีเห็บทั้งสองข้าง แต่ติ๊กป้ายทางด้านขวา
ในกรณีที่มีคนถาม (เหมือนที่ฉันทำ) ก็เป็นไปได้เช่นกันเมื่อมีคนใช้ subplot2grid ตัวอย่างเช่น:
import matplotlib.pyplot as plt
plt.subplot2grid((3,2), (0,1), rowspan=3)
plt.plot([2,3,4,5])
plt.tick_params(axis='y', which='both', labelleft='off', labelright='on')
plt.show()
มันจะแสดงสิ่งนี้:
ax.tick_params(axis='y', which='both', labelleft='off', labelright='on')
เช่นกัน แต่มันไม่ขยับylabel
plt.gca()
เพื่อรับวัตถุแกนปัจจุบันได้ตลอดเวลา ดังนั้นคุณจะใช้:plt.gca().yaxis.set_label_position("right")