python - 使用 matplotlib 在 Python 中绘制数据

标签 python python-3.x matplotlib plot

我目前正在阅读“机器学习的实际应用”。 在《回归》第 8 章中, p.158,很少有代码可以将原始数据点和拟合线绘制在一起。

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(xMat[:,1].flatten().A[0] , yMat.T[:, 0].flatten().A[0])

xCopy = xMat.copy()
xCopy.sort(0)
yHat = xCopy*ws
ax.plot(xCopy[:,1], yHat)
plt.show()

xCopy和yHat都是numpy定义的矩阵对象。

当我使用 Python 3.2 时,运行此代码会抛出错误:

Traceback (most recent call last):
  File "F:\ML\AC\Regression.py", line 44, in <module>
    ax.plot(xCopy[:,1], yHat)
  File "C:\Python32\lib\site-packages\matplotlib\axes.py", line 3998, in plot
    for line in self._get_lines(*args, **kwargs):
  File "C:\Python32\lib\site-packages\matplotlib\axes.py", line 332, in _grab_next_args
    for seg in self._plot_args(remaining, kwargs):
  File "C:\Python32\lib\site-packages\matplotlib\axes.py", line 291, in _plot_args
    linestyle, marker, color = _process_plot_format(tup[-1])
  File "C:\Python32\lib\site-packages\matplotlib\axes.py", line 99, in _process_plot_format
    if fmt.find('--')>=0:
AttributeError: 'matrix' object has no attribute 'find'

但是使用 Python 2.7,完全相同的代码片段可以正常工作。 numpy 2.7 和 3.2 之间有什么区别吗? 或者 matplotlib 库已将语法从 2.7 更改为 Python 3?

最佳答案

Python 3 支持matplotlib is very new ,因此您可能会遇到一些错误 - 这就是其中之一。

正如您所意识到的,numpy 和 matplotlib 对 python 2.X 的支持很好,所以如果您不想遇到更多隐藏的“功能”,我会坚持使用它。

关于python - 使用 matplotlib 在 Python 中绘制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16315673/

相关文章:

matplotlib - 删除 matplotlib 中的图例键

python - Pandas 线图抑制了一半的 xticks,如何阻止它?

python - 如何在文件之间共享静态类变量?

python - django2 + python3 : TemplateDoesNotExist

python - 内存不足 : np. meshgrid

numpy - Dtype 在 FROM 但不是 IMPORT 中工作

python-3.x - PyGObject. Python 与 GTK。 TreeView 问题

python - 从列表中创建元组的元组的更优雅的方式

python - 强制关键字参数

python - 如何自定义机器人框架测试报告