2012-06-26 28 views
8

Đây là ví dụ về vẽ đồ thị các giá trị lớn.Tự động thiết lập giới hạn trục y cho biểu đồ thanh bằng cách sử dụng matplotlib

import matplotlib.pyplot as plt 
x = [1,2,3,4,5] 
y = [1000, 1002, 1001, 1003, 1005] 
plt.bar(x,y) 
plt.show() 

Trục y bắt đầu bằng 0, vì vậy tất cả các thanh đều giống nhau. Tôi biết bạn có thể sử dụng plt.ylim để tự đặt giới hạn, nhưng có cách nào để matplotlib tự động (và thông minh) đặt giới hạn cho các giá trị hợp lý (như 998-1008) và cũng có thể hiển thị ngắt trục không?

Trả lời

11

Một chút đại số đơn giản sẽ giúp sửa chữa các giới hạn:

import matplotlib.pyplot as plt 
import math 
x = [1,2,3,4,5] 
y = [1000, 1002, 1001, 1003, 1005] 
low = min(y) 
high = max(y) 
plt.ylim([math.ceil(low-0.5*(high-low)), math.ceil(high+0.5*(high-low))]) 
plt.bar(x,y) 
plt.show() 

Bằng cách này, bạn có thể tìm thấy sự khác biệt giữa giá trị y của bạn và sử dụng chúng để thiết lập các quy mô dọc theo y- trục. Tôi đã sử dụng math.ceil (trái ngược với math.floor) để thu được các giá trị bạn đã chỉ định và đảm bảo các số nguyên.

Theo như ngắt quãng, tôi khuyên bạn nên xem this example.

+0

Vâng, tính năng này hoạt động khá tốt. Cảm ơn. – user1473483

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