【问题标题】:Fitting a curve over bar chart. [Python]在条形图上拟合曲线。 [Python]
【发布时间】:2018-04-03 01:24:32
【问题描述】:

我有一个条形图,我需要描述数据的分布。现在,我确信我的数据遵循几何分布,但我无法在数据上拟合曲线,也无法绘制概率质量函数。

plt.bar(range(len(freq)), [val[1] for val in freq], log=True, alpha=0.75)
plt.xticks(range(len(freq)), [val[0] for val in freq])
plt.xticks(rotation=70)
plt.xlabel('Times a word appears in the collection',labelpad=1)
plt.ylabel('Number of words appearing x times')

如何在这些数据上拟合曲线以证明我的数据服从几何分布?

我还要注意,我的数据是一个元组列表。

【问题讨论】:

  • 如果无法拟合曲线,则无法绘制该曲线。如果问题要早得多,您为什么要询问有关绘图的问题?现在看起来您在拟合方面没有尝试过任何事情。其他问题在多大程度上没有帮助?在不寻常的情况下,他们不会,问一个问题可能是有意义的。但是您需要提供问题的minimal reproducible example,即您尝试过但失败的代码。确保使用您用于拟合的工具标记问题,例如scipy、statsmodels、sklearn 或任何可能的东西。

标签: python matplotlib curve-fitting


【解决方案1】:

如果你替换这个例子中的数据和函数,我认为它接近你的要求。

import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit


# "x" is data, a,b,c are parameters
def func(x, a, b, c):
   return a + b*x + c*x*x # example function


xData = np.array([1,2,3,4,5,6])
yData = np.array([1,3,5,6,2,1])

# curve fit the data using curve_fit's default inital parameter estimates
fittedParameters, pcov = curve_fit(func, xData, yData)

y_fit = func(xData, *fittedParameters)

plt.bar(xData, yData) # plot the raw data as bar chart
plt.plot(xData, y_fit) # plot the equation using the fitted parameters
plt.show()

print(fittedParameters)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 2013-11-08
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    • 2021-03-21
    相关资源
    最近更新 更多