首页 > 解决方案 > 提取matplotlib在构建拟合曲线时使用的点

问题描述

我想提取 matplotlib 用来生成蓝色拟合曲线的点(我不是在谈论我生成的数据点)。我说的是 matplotlib 曲线下的点。

# First generate some data
import numpy as np

# Seed the random number generator for reproducibility
np.random.seed(0)

x_data = np.linspace(-5, 5, num=50)
y_data = 2.9 * np.sin(1.5 * x_data) + np.random.normal(size=50)

# And plot it
import matplotlib.pyplot as plt
plt.figure(figsize=(6, 4))
plt.scatter(x_data, y_data)

# Now fit a simple sine function to the data
from scipy import optimize

def test_func(x, a, b):
    return a * np.sin(b * x)

params, params_covariance = optimize.curve_fit(test_func, x_data, y_data, 
                                           p0=[2, 2])

print(params)


# And plot the resulting curve on the data

plt.figure(figsize=(6, 4))
plt.scatter(x_data, y_data, label='Data')
plt.plot(x_data, test_func(x_data, params[0], params[1]),
     label='Fitted function')

plt.legend(loc='best')

plt.show()

预期结果(圆圈:蓝色数据点;曲线:蓝色曲线)

可以提取这一系列点(我只是不知道如何)并使用另一个绘图程序单独绘制以重新生成拟合曲线/线(蓝色曲线)。

标签: matplotlibpython-3.6

解决方案


@Bazingaa 提供了一个有帮助的答案。我对他的评论中的问题由另一篇文章回答。那篇文章是: Python Seaborn Distplot Y value对应于给定的X值


推荐阅读