matplotlib中散点图的回归线和拟合曲线

时间:2014-02-13 23:29:47

标签: python numpy matplotlib plot pandas

我有一个大型数据集,我正在循环生成图。我已经成功地找出了散点图,但是我在解决如何生成回归线和拟合曲线时遇到了问题。

这是我的代码:

# import modules
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# OPTIONS AND PARAMETERES
pd.set_option('display.mpl_style', 'default')
df = pd.read_csv('W:/Dropbox/Connor/vaccinia.csv', index_col = 'SampleID')
x = df.iloc[0][59:84].astype(np.float)
fileNameTemplate = r'W:\Dropbox\Connor\Plot\Plot{0:2}.png'

# THE LOOP - for i in df.count(1):
for i in range(0, 10):
    venus = df.iloc[i][8:33]
    mcherry = df.iloc[i][33:58]   

    fig = plt.figure()
    fig.suptitle(str(i) + " - " + df.iloc[i][0])
    plt.xlabel('uM compound')
    plt.ylabel('reporter activity')
    ax1 = fig.add_subplot(111)
    ax1.set_xscale('log')
    ax1.scatter(x, venus, c='g')
    ax1.scatter(x, mcherry, c='r')

    plt.savefig(fileNameTemplate.format(i))
    plt.close()

我发现(和尝试过)多种在线方法无济于事。当我得到np.sin的属性错误时,回归线通常会失败,并且由于polyfit期间的错误,拟合曲线将无效。我怀疑一些问题可能是因为我的一些数据点是NaN

任何人都可以帮助我吗?

编辑:我也很感谢你对最佳实践的看法 - 我今天开始学习python和所有这些,所以我真的不知道我在做什么。

1 个答案:

答案 0 :(得分:1)

用于将数据拟合到曲线,我使用了scipy.optimize.curve_fit

要过滤数据,要删除NaN,请使用this answer

相关问题