สร้างขึ้นจากคำตอบที่ยอดเยี่ยมของ @ peeolคุณยังสามารถลบเฟรมได้โดยทำ
for spine in plt.gca().spines.values():
spine.set_visible(False)
ในการให้ตัวอย่าง (ตัวอย่างโค้ดทั้งหมดสามารถพบได้ในตอนท้ายของโพสต์นี้) สมมติว่าคุณมีพล็อตแท่งแบบนี้
คุณสามารถลบเฟรมโดยใช้คำสั่งด้านบนแล้วเก็บx-
และytick
ป้ายกำกับ (ไม่แสดงพล็อต) หรือลบออกได้เช่นกัน
plt.tick_params(top='off', bottom='off', left='off', right='off', labelleft='off', labelbottom='on')
ในกรณีนี้คุณสามารถติดป้ายบาร์ได้โดยตรง พล็อตสุดท้ายอาจมีลักษณะเช่นนี้ (รหัสสามารถพบได้ด้านล่าง):
นี่คือรหัสทั้งหมดที่จำเป็นในการสร้างแปลง:
import matplotlib.pyplot as plt
import numpy as np
plt.figure()
xvals = list('ABCDE')
yvals = np.array(range(1, 6))
position = np.arange(len(xvals))
mybars = plt.bar(position, yvals, align='center', linewidth=0)
plt.xticks(position, xvals)
plt.title('My great data')
# plt.show()
# get rid of the frame
for spine in plt.gca().spines.values():
spine.set_visible(False)
# plt.show()
# remove all the ticks and directly label each bar with respective value
plt.tick_params(top='off', bottom='off', left='off', right='off', labelleft='off', labelbottom='on')
# plt.show()
# direct label each bar with Y axis values
for bari in mybars:
height = bari.get_height()
plt.gca().text(bari.get_x() + bari.get_width()/2, bari.get_height()-0.2, str(int(height)),
ha='center', color='white', fontsize=15)
plt.show()
savefig
? (ถ้าเป็นเช่นนั้นมันจะแทนที่สิ่งที่คุณตั้งไว้เมื่อบันทึกรูป) การตั้งค่าด้วยตนเองfig.patch.set_visible(False)
ทำงานหรือไม่