【问题标题】:Regression line and fitted curve for scatter plots in matplotlibmatplotlib 中散点图的回归线和拟合曲线
【发布时间】:2014-02-13 23:29:47
【问题描述】:

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

这是我的代码:

# 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 和所有这些,所以我还不知道我在做什么。

【问题讨论】:

  • 你的问题很模糊。尝试完善您的问题以获得更好的答案。 SO 不适合讨论。
  • 好的,如何让 np.sin 不抛出属性错误或 polyfit 正常工作?
  • 这里最重要的是您的示例需要是可复制/可粘贴的。在当前形式下,我无法运行您的示例代码,因为我无权访问您的 W:\ 驱动器。请在您的示例中包含一些代码以生成一些数据模型。
  • 什么是错误信息以及什么代码 sn-p 产生它?您的代码似乎无关。

标签: python numpy matplotlib plot pandas


【解决方案1】:

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

要过滤您的数据,要删除 NaN,请使用 this 答案

【讨论】:

    猜你喜欢
    • 2020-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 2019-11-06
    • 2021-12-11
    • 2012-06-27
    • 2013-07-09
    相关资源
    最近更新 更多