2010-02-11 34 views
11

Đây là mã của tôi:Python: Cách tìm độ dốc của biểu đồ được vẽ bằng matplotlib?

import matplotlib.pyplot as plt 
plt.loglog(length,time,'--') 

nơi chiều dài và thời gian là danh sách.

Làm cách nào để tìm độ dốc của biểu đồ này?

+0

Bạn có muốn phù hợp với tuyến tính không? hoặc ở độ dốc tại mỗi điểm của biểu đồ? – EOL

+0

Tôi quan tâm đến sự phù hợp tuyến tính. – Bruce

Trả lời

19

Nếu bạn có matplotlib thì bạn cũng phải cài đặt gọn gàng vì nó là phụ thuộc. Do đó, bạn có thể sử dụng numpy.polyfit để tìm độ dốc:

import matplotlib.pyplot as plt 
import numpy as np 

length = np.random.random(10) 
length.sort() 
time = np.random.random(10) 
time.sort() 
slope, intercept = np.polyfit(np.log(length), np.log(time), 1) 
print(slope) 
plt.loglog(length, time, '--') 
plt.show() 
+0

Điều này sẽ đúng nếu biểu đồ là một dòng. Trong trường hợp nó là một đường cong và độ dốc thay đổi tại các điểm khác nhau thì cần có sự khác biệt. Thử hàm diff. – whatnick

+0

Bạn có thể vui lòng cung cấp thêm một số chi tiết về chức năng này không. – Bruce

+3

@Peter: 'polyfit' (trong hóa thân đơn giản nhất) mất 3 args: dữ liệu' x'-data, 'y' và mức đa thức. Vì bạn đang tìm kiếm một sự phù hợp tuyến tính, arg thứ 3 được đặt thành 1. 'polyfit' sau đó trả về các hệ số của đa thức phù hợp nhất, trong trường hợp này có nghĩa là độ dốc và điểm đánh dấu y. HTH. – unutbu

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