首页 > 解决方案 > 为什么 matplotlib 不绘制这条参数曲线?

问题描述

所以我需要 matplotlib 的帮助来可视化多变量微积分中的一些东西,其中之一是参数曲线。我不太了解python,但我试图理解他们网站上的示例(https://matplotlib.org/stable/gallery/mplot3d/lines3d.html#sphx-glr-gallery-mplot3d-lines3d-py)和绘制我自己的参数曲线。

import numpy as np
import matplotlib.pyplot as plt
ax = plt.figure().add_subplot(projection = '3d')
theta = np.linspace(0, 4*np.pi, 100)
x = np.cos(theta) + 3
y = 0
z = np.sin(theta)

现在当我在 IDLE 中输入上述代码行时没有错误,但是当我输入时

ax.plot(x,y,z, label='Parametric curve')

它给了我错误:

Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    ax.plot(x,y,z, label = 'parametric curve')
  File "C:\Users\Koustubh\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\mpl_toolkits\mplot3d\axes3d.py", line 1572, in plot
    lines = super().plot(xs, ys, *args, **kwargs)
  File "C:\Users\Koustubh\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\matplotlib\axes\_axes.py", line 1605, in plot
    lines = [*self._get_lines(*args, data=data, **kwargs)]
  File "C:\Users\Koustubh\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\matplotlib\axes\_base.py", line 315, in __call__
    yield from self._plot_args(this, kwargs)
  File "C:\Users\Koustubh\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\matplotlib\axes\_base.py", line 501, in _plot_args
    raise ValueError(f"x and y must have same first dimension, but "
ValueError: x and y must have same first dimension, but have shapes (100,) and (1,)

所以谁能帮我解决我在这里做错了什么?我只是非常努力地可视化参数曲线,但还不知道任何 python。编辑#1:所以我替换y= 0y = np.sin(theta)-np.sin(theta)它工作正常,我得到了我的情节。但是为什么通常不将 y 定义为零呢?

标签: pythonmatplotlib

解决方案


推荐阅读