【问题标题】:Line of best fit using axhline()使用 axhline() 的最佳拟合线
【发布时间】:2021-07-05 12:39:47
【问题描述】:

所以我正在尝试使用plt.axhline() 功能向图表添加一条最佳拟合线。我目前拥有的代码如下,目前正在运行,但不包括 axhline 代码,

df = pd.DataFrame(pd.read_csv('test5.csv', sep=','))
x = df["IE ratio"]
y = df["109"]
x1 = df["IE ratio"].mean()

plt.axvline(x1, 0, 1, c= 'k')
plt.scatter(x, y, s = 10)
plt.ylabel('Appearance of mutation')
plt.xlabel('IE spectrum')
plt.show()

我尝试引入 plt.axhline() 功能,但无法确定需要在括号中放入什么才能获得所需的输出。

这是我用红线绘制的情节,以显示我希望制作的内容。

Outputted graph

提前感谢您的任何建议或帮助!

【问题讨论】:

  • axhline 添加一条水平线。绝对不是你要找的。​​span>
  • 你知道我可以使用的任何其他功能或绘图工具吗?
  • 还可以看看seaborn's regplot,它开箱即用。它还增加了一个置信区间。

标签: python-3.x matplotlib data-analysis


【解决方案1】:

我设法使用我拥有的旧练习笔记本让它工作。我使用了下面的代码。

import matplotlib as plt
from numpy.polynomial import Polynomial
x = df["IE ratio"]
y = df["44"]
xfit = np.linspace(1.3, 4.0, 30)
q = Polynomial.fit(x, y, deg=5)
plt.scatter(x, y, s = 10)
plt.plot(xfit, q(xfit), c='k')
x1 = df["IE ratio"].mean()
plt.axvline(x1, 0, 1, c= 'k')

感谢您的建议,伙计们:)

【讨论】:

    【解决方案2】:

    计算109 的平均值以获得IE ratio 的一组切割并绘制它可能会让您更进一步,但需要更多信息才能为您提供更相关的建议。

    import numpy as np
    df['109_mean'] = pd.cut(df['IE ratio'], bins=np.arange(4.6,5.6,0.01))
    df.plot('IE ratio', '109_mean')
    

    【讨论】:

      猜你喜欢
      • 2014-09-07
      • 2011-01-31
      • 1970-01-01
      • 2019-03-31
      • 1970-01-01
      • 1970-01-01
      • 2017-03-31
      • 2016-02-27
      相关资源
      最近更新 更多