在matplotlib中绘制多条拟合线

时间:2014-03-27 14:51:56

标签: matplotlib pandas

我在表单中有一个数据集  enter image description here

我有兴趣为Z列中的每个值绘制线性拟合,以便o / p图看起来像这样: enter image description here

我使用以下代码为整个数据集创建线性拟合:

----- fit = polyfit(p1 [' X],p1 [' Y'],1)

----- fit_fn = poly1d(fit)

----- x =情节(p1 [' X'],p1 [' Y'],' r。',p1 [& #39; X'],fit_fn(p1 [' X']),' - k',linewidth = 2)

但是在绕过Z col时,它会断开。

请建议

1 个答案:

答案 0 :(得分:3)

你需要正确地循环遍历Z值组(目前还不清楚你在所展示的代码中是如何做到这一点的),你需要确保所有的图最终都在同一个轴上。

import matplotlib.pyplot as plt

fig, ax = plt.subplots()

for _, group in p1.groupby('Z'):
    fit = polyfit(group['X'], group['Y'], 1)
    fit_fn = poly1d(fit)
    ax.plot(group['X'], group['Y'], 'r.',
            group['X'], fit_fn(group['X']), '--k',linewidth=2)