小编mcl*_*uka的帖子

近似多项式拟合给定数据

我面临着近似多项式拟合的问题。此处显示了对我的问题的更详细评论。基本上我想平滑我通过长时间数学运算得到的多项式的中间部分,如下所示。 在此处输入图片说明 我得到的想法是从多项式的开头和结尾取一个范围(它的点),并制作一个在中间部分没有波动的近似多项式;选定的点如下所示。 在此处输入图片说明 然而,通过使用该polyfit函数,我并没有得到我所希望的多项式。 在此处输入图片说明

这是我的代码的关键部分:

from sympy import*
import numpy as np
init_printing()
%matplotlib inline
import matplotlib.pyplot as plt

S = np.linspace(25, 400, 1000)
SS = np.log10(S)
def f(logS): # the polynomial that I got
    return 10**(-57.2476193068601*logS**5 + 585.900632193053*logS**4 - 2384.35277925916*logS**3 + 4821.25582425353*logS**2 - 4845.47249368281*logS + 1943.75303313331)  

xdata = f(SS)
ydata = S

plt.figure(figsize=(12, 10), dpi= 600, facecolor='w', edgecolor='k')

plt.loglog(xdata, ydata,'k-')
# Data for new polynomial (approximation)
XX = xdata[:40].tolist()
X1 = xdata[len(xdata)-350:].tolist()
YY = ydata[:40].tolist()
Y1 …
Run Code Online (Sandbox Code Playgroud)

python math polynomial-math smoothing python-3.x

1
推荐指数
1
解决办法
2413
查看次数

将pandas表(用字符串填充)保存为png

这是我的代码:

column1 = ['Measured Set', '1. set', '2. set', '3. set']
column2= ['Breached parameter (number of breaches, %)' ]
column3 = ['Breached parameter (number of breaches, %)']

for j in range(NOT):
    column2.append(report_str[0][j])
    column3.append(report_str[1][j])

data = {
    'Sensor': column1,
    'Sensor 1': column2,
    'Sensor 2': column3,
}

df = pd.DataFrame(data)
df
Run Code Online (Sandbox Code Playgroud)

report_str 是一个列表,填充了字符串,我将某些字符串复制到表中.

我尝试使用此代码保存表:

ax = df.plot()
fig = ax.get_figure()
fig.savefig('asdf.png')
Run Code Online (Sandbox Code Playgroud)

但是我得到一个错误:"空'DataFrame':没有要绘制的数字数据".

这是我要保存的输出表: 在此输入图像描述

任何人都可以帮我解决这个问题吗?

python matplotlib python-2.7 python-3.x pandas

1
推荐指数
1
解决办法
2955
查看次数