【问题标题】:matplotlib.pyplot.plot() doesn't show the graphmatplotlib.pyplot.plot() 不显示图表
【发布时间】:2016-08-27 05:56:47
【问题描述】:

我正在学习 Python,并且我有一个辅助项目来学习使用 matplotlib.pyplot 模块显示数据。这是一个使用日期[] 和价格[] 作为数据来显示数据的示例。有谁知道为什么我们需要第 5 行和第 6 行?我很困惑为什么需要此步骤来显示图表。

from sklearn import linear_model
import matplotlib.pyplot as plt

def showgraph(dates, prices):
  dates  = numpy.reshape(dates, (len(dates), 1))   # line 5
  prices = numpy.reshape(prices, (len(prices), 1)) # line 6

  linear_mod = linear_model.LinearRegression()
  linear_mod.fit(dates,prices)
  plt.scatter(dates,prices,color='yellow') 
  plt.plot(dates,linear_mod.predict(dates),color='green')
  plt.show()

【问题讨论】:

    标签: python matplotlib linear-regression


    【解决方案1】:

    在终端中尝试以下操作以检查后端:

    import matplotlib
    import matplotlib.pyplot
    print matplotlib.backends.backend
    

    如果它显示“agg”,它是一个非交互式的,不会显示,但 plt.savefig 有效。

    要显示情节,您需要切换到 TkAgg 或 Qt4Agg。

    您需要在 matplotlibrc 文件中编辑后端。要在终端中打印其位置,请执行以下操作。

    import matplotlib
    matplotlib.matplotlib_fname()
    

    更多关于matplotlibrc

    【讨论】:

      【解决方案2】:

      第 5 行和第 6 行将我假设的行向量(我不确定 dataprices 在此转换之前如何编码)转换为列向量。所以现在你有了看起来像这样的向量。

      [0,
       1, 
       2, 
       3]
      

      这是linear_model.Linear_Regression.fit() 所期望的形式。在数据和价格是行向量的假设下,绘图不需要重塑。

      【讨论】:

        【解决方案3】:

        我的方法与您的完全一样,但仍然没有第 5 行和第 6 行显示是正确的。我认为那些行是不必要的。由于您的输入数据是行格式,因此您似乎不需要 fit() 函数。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-05-13
          • 2013-03-22
          • 2018-02-09
          • 2015-06-14
          相关资源
          最近更新 更多