【问题标题】:3-D graphs in matplotlibmatplotlib 中的 3-D 图
【发布时间】:2014-06-16 19:15:26
【问题描述】:

我想在图表上绘制三个大小相同的列表 x、y 和 z。这是我的代码:

fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot(x, y, z, label = 'curve')
plt.show()

但是,我收到以下错误:

Traceback (most recent call last):
File "Graph.py", line 36, in <module>
ax.plot(x, y, z, label = 'curve')
      File "/usr/lib/python3/dist-packages/mpl_toolkits/mplot3d/axes3d.py", line 1513, in plot
    lines = Axes.plot(self, xs, ys, *args[argsi:], **kwargs)
      File "/usr/lib/python3/dist-packages/matplotlib/axes.py", line 4139, in plot
    for line in self._get_lines(*args, **kwargs):
  File "/usr/lib/python3/dist-packages/matplotlib/axes.py", line 319, in _grab_next_args
    for seg in self._plot_args(remaining, kwargs):
  File "/usr/lib/python3/dist-packages/matplotlib/axes.py", line 281, in _plot_args
    raise ValueError('third arg must be a format string')
ValueError: third arg must be a format string

【问题讨论】:

  • x、y 和 z 是相同长度的整数列表。
  • 将您的代码与三个列表一起使用对我有用,因此问题出在您的列表中。

标签: python graph matplotlib


【解决方案1】:

您似乎没有正确初始化 3D 轴。拳头,请确保您已正确导入所有内容:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

然后,尝试向您的图形添加一个子图,而不是访问当前轴:

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

如果这不能解决问题,您需要提供更多详细信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-16
    • 1970-01-01
    • 2019-05-18
    • 1970-01-01
    • 2019-07-13
    • 2011-04-12
    • 2021-08-15
    相关资源
    最近更新 更多