2010-07-09 23 views
8

Tôi cần phải có được một âm mưu phù hợp với dữ liệu tự động bằng cách sử dụng matplotlib. Đây là mã tôi đã được cung cấp:Matplotlib autoscale

import matplotlib.pyplot as plt 
from matplotlib.collections import LineCollection 
.... 
lines = LineCollection(mpl.line_holder, colors=mpl.colorholder , linestyle='solid') 
plt.axes().add_collection(lines) 
plt.axes().set_aspect('equal', 'datalim') 
plt.draw() 
plt.show() 

Điều này tạo ra một cốt truyện, tuy nhiên, dữ liệu là gì, ngay cả khi tất cả dữ liệu nằm ngoài cửa sổ. Cửa sổ kết quả không có khả năng thu nhỏ, chỉ trong, vì vậy đây là một vấn đề lớn. Tôi không thể tìm thấy bất cứ nơi nào mà bất kỳ loại kích thước nào được thiết lập, cũng như II có thể tìm thấy chi tiết về những gì mặc định. Tôi cần cửa sổ để tự động phù hợp với dữ liệu, nhưng tôi không thể tìm thấy bất kỳ chức năng nào nó (vì lý do nào đó, autoscale_on (True) không làm điều đó). Dữ liệu rất biến đổi, do đó, đặt giới hạn cứng không phải là một tùy chọn. Làm thế nào tôi có thể nhận được điều này để hiển thị đúng cách?

Trả lời

10

Không chắc chắn nếu điều này bạn muốn, nhưng tôi có thể thay đổi nó nếu đây không phải là những gì bạn đang tìm kiếm.

import matplotlib.pyplot as plt 
from matplotlib.collections import LineCollection 

import pylab as p 

fig = plt.figure() 
pts1 = [] 
pts2 = [] 
for i in range(100): 
    pts1.append([i,i]) 
    pts2.append([-i-3,-i]) 
lines = LineCollection([pts1,pts2], linestyles='solid') 
subplt = fig.add_subplot(111,aspect='equal') 
subplt.add_collection(lines) 
subplt.autoscale_view(True,True,True) 
p.show() 

Hy vọng điều đó sẽ hữu ích.

+4

autoscale_view (True, True, True) đã khắc phục sự cố. Bây giờ nếu tôi chỉ có thể tìm thấy một lời giải thích về những gì nó về mặt kỹ thuật làm trong tài liệu khủng khiếp. – Elliot

+0

Nên ở đâu đó tại đây: http://matplotlib.sourceforge.net/api/axes_api.html. Tài liệu không phải là quá tốt mặc dù. – River

1

Hãy xem Eli Bendersky's Website, cụ thể là this post. Ví dụ ở cuối bài đăng có thể được tải xuống. Nó cho phép bạn thiết lập liệu trục x sẽ theo cốt truyện hay sẽ vẫn tĩnh trong khi trục y thay đổi với dữ liệu.