Matplotlib scatter():多项式回归线

时间:2018-03-19 07:46:54

标签: python matplotlib

是否可以在matplotlib中的scatter()上进行多项式回归线?

这是我的图表: https://imgur.com/a/Xh1BO

    alg_n = [1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4...]
    orig_hc_runtime = [0.01, 0.02, 0.03, 0.04, 0.04, 0.04, 0.05, 0.09...]

    plt.scatter(alg_n, orig_hc_runtime, label="Orig HC", color="b", s=4)
    plt.scatter(alg_n, mod_hc_runtime, label="Mod HC", color="c", s=4)
    ...

    x_values = [x for x in range(5, n_init+2, 2)]
    y_values = [y for y in range(0, 10, 2)]

    plt.xlabel("Number of Queens")
    plt.ylabel("Time (sec)")
    plt.title("Algorithm Performance: Time")
    plt.xticks(x_values)
    plt.yticks(y_values)
    plt.grid(linewidth="1", color="white")
    plt.legend()
    plt.show()

是否可以为吃数据集设置回归线?如果是这样,请你解释我是如何做到的。

2 个答案:

答案 0 :(得分:0)

不确定是否可以使用matplotlib完成,但您可以随时单独计算回归并绘制它。我使用scikit-learn留下一个示例代码来计算回归线。

import numpy as np
from sklearn.preprocessing import PolynomialFeatures
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import make_pipeline

x = [1, 2, 3, 4, 5, 8, 10]
y = [1.1, 3.8, 8.5, 16, 24, 65, 99.2]

model = make_pipeline(PolynomialFeatures(2), LinearRegression())
model.fit(np.array(x).reshape(-1, 1), y)
x_reg = np.arange(11)
y_reg = model.predict(x_reg.reshape(-1, 1))

plt.scatter(x, y)
plt.plot(x_reg, y_reg)
plt.show()

输出:

2nd degree polynomial regression

答案 1 :(得分:-1)

我建议你使用Seaborn库。它建立在matplotlib之上,有许多统计绘图程序。请查看regplotlmplothttp://seaborn.pydata.org/tutorial/regression.html#functions-to-draw-linear-regression-models

的示例

在您的情况下,您可以执行以下操作:

import pandas as pd
import seaborn as sns
df = pd.DataFrame.from_dict({"Number of Queens": [1, 1, 1, 2, 2, 2, 3,
                                                  3, 3, 4, 4, 4],
                             "Time (sec)": [0.01, 0.02, 0.03, 0.04, 0.04, 0.04,
                                            0.05, 0.09, 0.12, 0.14, 0.15, 0.16]})
sns.lmplot('Number of Queens', 'Time (sec)', df, order=1)

Resulting plot

如果您想要不同组的回归线,请添加包含组标签的列,并将其添加到hue的{​​{1}}参数。