2009-05-20 28 views
8

Khi tôi vẽ mẫu dữ liệu mỗi tháng bằng các thanh, chiều rộng của chúng rất mỏng. Nếu tôi đặt định vị nhỏ trục X cho DayLocator(), tôi có thể thấy chiều rộng thanh được điều chỉnh thành 1 ngày, nhưng tôi muốn chúng lấp đầy cả tháng.Kiểm soát chiều rộng thanh trong matplotlib với dữ liệu mỗi tháng

Tôi đã cố gắng đặt dấu vị trí nhỏ cho MonthLocator() không có hiệu lực.

[sửa]

Có lẽ một ví dụ sẽ rõ ràng hơn, đây là một ví dụ ipython -pylab về những gì tôi có nghĩa là:

x = [datetime.datetime(2008, 1, 1, 0, 0), 
    datetime.datetime(2008, 2, 1, 0, 0), 
    datetime.datetime(2008, 3, 1, 0, 0), 
    datetime.datetime(2008, 4, 1, 0, 0), 
    datetime.datetime(2008, 5, 1, 0, 0), 
    datetime.datetime(2008, 6, 1, 0, 0), 
    datetime.datetime(2008, 7, 1, 0, 0), 
    datetime.datetime(2008, 8, 1, 0, 0), 
    datetime.datetime(2008, 9, 1, 0, 0), 
    datetime.datetime(2008, 10, 1, 0, 0), 
    datetime.datetime(2008, 11, 1, 0, 0), 
    datetime.datetime(2008, 12, 1, 0, 0)] 

y = cos(numpy.arange(12) * 2) 

bar(x, y) 

Điều này cho phép 12 2 pixel thanh rộng, tôi muốn họ rộng hơn và kéo dài từ tháng này sang tháng khác.

+0

Bạn đang nói về thanh lỗi? –

+0

Không, tôi đang nói về các thanh được tạo ra bởi Axes.bar() –

Trả lời

24

Chỉ cần sử dụng đối số width keyword:

bar(x, y, width=30) 

Hoặc, kể từ tháng khác nhau có số lượng khác nhau của ngày, để làm cho nó trông tốt bạn có thể sử dụng một chuỗi:

bar(x, y, width=[(x[j+1]-x[j]).days for j in range(len(x)-1)] + [30]) 
+0

Cảm ơn tôi thậm chí không nghĩ rằng chiều rộng có thể có giá trị lớn hơn 1 :) –

+11

Các đơn vị của đối số chiều rộng là gì? – alexei

+3

Tôi nghĩ rằng nó nằm trong các đơn vị của trục x. – facuq

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