繁体   English   中英

matplotlib.pyplot.plot()不显示图形

[英]matplotlib.pyplot.plot() doesn't show the graph

我正在学习Python,并且有一个辅助项目可以学习使用matplotlib.pyplot模块显示数据。 这是一个使用date []和price []作为数据显示数据的示例。 有谁知道为什么我们需要第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()

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

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

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

要显示该图,您需要切换到TkAgg或Qt4Agg。

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

import matplotlib
matplotlib.matplotlib_fname()

有关matplotlibrc的更多信息

第5行和第6行将Im假定的行向量(不确定在此转换之前如何编码dataprices )转换为列向量。 所以现在您有了矢量,如下所示。

[0,
 1, 
 2, 
 3]

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM