Python中的指数绘图

时间:2016-06-28 19:17:39

标签: python python-3.x numpy matplotlib plot

我有[(a0,b0),(a1,b1),...,(a_n,b_n)]形式的元组列表。 y值已经根据x值计算 - 这就是元组列表的构建方式。我试图以指数方式绘制这些数据点,以获得证明限制的图像为x - >无穷。我已阅读其他用户的帖子,主要建议是使用curve_fit中的scipy。我面临的问题是curve_fit有三个参数,第一个参数是创建y值的函数。

我的函数是math.log N(x)/math.log(x),其中N(x)是在树的每个级别包含数据的节点数,x是由每个级别的节点总数定义的值一棵树“正式”定义:

lim x->infinity [log N(x)/log(x)]

到目前为止,我只能用多项式绘制点;如下:

coordinates_set = [] #tuples set containing the coordinates
x = np.linspace(0, 5, 1000)
x_values = [x[0] for x in coordinates_set]
y_values = [y[0] for y in coordinates_set]

polynomial_degree = 4
coeffs = np.polyfit(x_values, y_values, polynomialDegree)
y_poly = np.polyval(coeffs, x)

plt.ylim((-100, 5000))
plt.xlim((-1,1))
plt.plot(x_values, y_values, 'o', label='data points')
plt.plot(x, y_poly, label='polynomial fit')
plt.legend()
plt.show()

结果图: enter image description here

我的情况下指数绘图的任何建议?或任何更好实施的建议?

修改

以下是coordinates_set列表中的几个元组的示例:

[[0.16666666666666666, -0.0], 
[0.08333333333333333, -1.6736576739067788],
[0.041666666666666664, -2.614706150234702], 
[0.020833333333333332, -2.5468257447958154], 
[0.010416666666666666, -1.5649172897268775],
[0.005208333333333333, -0.13183980802870454]]

此外,在lim x-> infinity log N(x)/log(x)的表述中,N(x)作为值提供,因为我有一个不同的函数N,它返回值。

0 个答案:

没有答案