2013-11-26 16 views
20

Đây có thể là một câu hỏi tầm thường, nhưng tôi đang cố vẽ biểu đồ thanh bằng matplotlib và với văn bản xoay trên trục x. Mã Tôi đang sử dụng được hiển thị dưới đây:Không gian trắng khó chịu trong biểu đồ thanh (matplotlib, Python)

fig = plt.figure() 

x_labels_list = [] 

for i in range(0, pow(2, N)): 
    x_labels_list.append(str(f(i))) # The function f() converts i to a binary string 

ax = plt.subplot(111) 
width = 1.0 
bins = map(lambda x: x-width, range(1,pow(2,N)+1)) 
ax.bar(bins, my_data, width=width) 
ax.set_xticks(map(lambda x: x-width/2, range(1,pow(2,N)+1))) 
ax.set_xticklabels(x_labels_list, rotation=90, rotation_mode="anchor", ha="right") 

Nó hoạt động hoàn hảo, nhưng tôi có được một không gian trắng gây phiền nhiễu trên bên phải của trục x, được biểu thị bằng hình elip màu đỏ trong hình sau:

enter image description here

Bạn có biết cách xóa nó không? Cảm ơn trước!

+0

Bạn có thể đăng một ví dụ hoạt động sao chép hình bạn đang hiển thị không? –

Trả lời

26

Hãy thử gọi plt.xlim() với số lượng thùng, ví dụ:

plt.xlim([0,bins.size]) 

Dưới đây là một ví dụ:

#make some data 
N = 22 
data = np.random.randint(1,10,N) 
bin = np.arange(N) 
width = 1 

#plot it 
ax = plt.subplot(111) 
ax.bar(bin, data, width, color='r') 
plt.show() 

Không plt.xlim() đầu ra:

no xlim

Bây giờ vẽ nó với plt.xlim sử dụng số lượng thùng để xác định kích thước:

#plot it 
ax = plt.subplot(111) 
ax.bar(bin, data, width, color='r') 
plt.xlim([0,bin.size]) 
plt.show() 

Kết quả nó:

with xlim

Có thể có một cách tốt hơn, nhưng điều này sẽ làm việc cho bạn.

+0

Đẹp, nó hoạt động hoàn hảo! – user2983638

+17

Bạn cũng có thể sử dụng 'plt.axis ('tight')' để thực hiện điều tương tự mà không phải lo lắng về việc xác định số lượng thùng. Ngoài ra, nếu bạn muốn một chút không gian ở các cạnh, hãy sử dụng 'plt.margins (0.05, 0)' để giảm các giới hạn với 5% phạm vi dữ liệu theo hướng x và 0% theo hướng y . –

+0

@Joe Kington: Vâng, tôi cũng đã thử giải pháp của bạn, và nó hoạt động! – user2983638

Các vấn đề liên quan