首页 文章

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

提问于
浏览
-1

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

这是我的代码:

# 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 回答

  • 1

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

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

相关问题