ฉันมีพล็อต semilogx และฉันต้องการลบ xticks ฉันเหนื่อย:
plt.gca().set_xticks([])
plt.xticks([])
ax.set_xticks([])
ตารางหายไป (ok) แต่ยังมีเห็บขนาดเล็กอยู่ (ที่สถานที่ของเห็บหลัก) จะลบออกได้อย่างไร
ฉันมีพล็อต semilogx และฉันต้องการลบ xticks ฉันเหนื่อย:
plt.gca().set_xticks([])
plt.xticks([])
ax.set_xticks([])
ตารางหายไป (ok) แต่ยังมีเห็บขนาดเล็กอยู่ (ที่สถานที่ของเห็บหลัก) จะลบออกได้อย่างไร
คำตอบ:
tick_params
วิธีการเป็นประโยชน์อย่างมากสำหรับสิ่งเช่นนี้ รหัสนี้จะปิดเครื่องหมายติ๊กหลักและรองและลบเลเบลออกจากแกน x
from matplotlib import pyplot as plt
plt.plot(range(10))
plt.tick_params(
axis='x', # changes apply to the x-axis
which='both', # both major and minor ticks are affected
bottom=False, # ticks along the bottom edge are off
top=False, # ticks along the top edge are off
labelbottom=False) # labels along the bottom edge are off
plt.show()
plt.savefig('plot')
plt.clf()
plt.tick_params(axis='both', which='both', bottom='off', top='off', labelbottom='off', right='off', left='off', labelleft='off')
axes
มีtick_params
วิธีการเดียวกัน
matplotlib
คุณควรเปลี่ยน'on'
ด้วยTrue
และมี'off'
False
ไม่ใช่สิ่งที่ OP ร้องขอมา แต่เป็นวิธีที่ง่ายในการปิดการใช้งานทุกบรรทัดแกนติ๊กและป้ายกำกับคือเรียกง่ายๆ:
plt.axis('off')
ax.axis('off')
ในอินสแตนซ์แกนที่มีอยู่
หรือคุณสามารถผ่านตำแหน่งที่ว่างเปล่าและป้ายกำกับเป็น
# for matplotlib.pyplot
# ---------------------
plt.xticks([], [])
# for axis object
# ---------------
# from Anakhand May 5 at 13:08
# for major ticks
ax.set_xticks([])
# for minor ticks
ax.set_xticks([], minor=True)
ax
แล้วคุณสามารถใช้:ax.set_xticks([], [])
ax.set_xticks([])
สำหรับเห็บหลักax.set_xticks([], minor=True)
สำหรับเห็บย่อย เทียบเท่ากับpyplot
Are และplt.xticks([])
plt.xticks([], minor=True)
นี่เป็นทางเลือกอื่นที่ฉันพบในรายชื่อผู้รับจดหมายของ matplotlib :
import matplotlib.pylab as plt
x = range(1000)
ax = plt.axes()
ax.semilogx(x, x)
ax.xaxis.set_ticks_position('none')
มีวิธีแก้ปัญหาที่ดีกว่าและเรียบง่ายกว่าที่ John Vinyard มอบให้ การใช้NullLocator
:
import matplotlib.pyplot as plt
plt.plot(range(10))
plt.gca().xaxis.set_major_locator(plt.NullLocator())
plt.show()
plt.savefig('plot')
หวังว่าจะช่วย
axins.xaxis.set_major_locator(plt.NullLocator())
ซึ่งaxins
เป็นวัตถุที่ส่งกลับโดยaxins = zoomed_inset_axes()
(ฟังก์ชั่นนำเข้าจากmpl_toolkits.axes_grid1.inset_locator
)
ลองใช้วิธีนี้เพื่อลบป้ายกำกับ (แต่ไม่ใช่เห็บ):
import matplotlib.pyplot as plt
plt.setp( ax.get_xticklabels(), visible=False)
setp
อยู่ในโหมด pylab ไม่สามารถใช้กับแต่ละแกนได้
ตัวอย่างนี้อาจช่วยในการลบ xticks เท่านั้น
from matplotlib import pyplot as plt
plt.xticks([])
ตัวอย่างนี้อาจช่วยในการลบ xticks และ yticks ทั้งสอง
from matplotlib import pyplot as plt
plt.xticks([]),plt.yticks([])
# remove all the ticks (both axes), and tick labels on the Y axis
plt.tick_params(top='off', bottom='off', left='off', right='off', labelleft='off', labelbottom='on')
ax.tick_params()
off
และon
เลิกใช้แล้ว MatplotlibDeprecationWarning: Passing one of 'on', 'true', 'off', 'false' as a boolean is deprecated; use an actual boolean (True/False) instead.
ผู้ที่คุณกำลังมองหาคำสั่งสั้น ๆ เพื่อปิดการทำเครื่องหมายและป้ายกำกับทั้งหมดควรใช้ได้ด้วย
plt.tick_params(top=False, bottom=False, left=False, right=False, labelleft=False, labelbottom=False)
ซึ่งอนุญาตให้พิมพ์bool
พารามิเตอร์ตามลำดับตั้งแต่เวอร์ชัน matplotlib> = 2.1.1
สำหรับการตั้งค่าติ๊กที่กำหนดเองเอกสารนั้นมีประโยชน์:
https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.tick_params.html
ax.set_xticks([], [])
และมันได้รับการแก้ไข ...