matplotlib 我在绘制二维图形和三维图形时遇到问题

pxiryf3j  于 2023-10-24  发布在  其他
关注(0)|答案(2)|浏览(124)

我有一个代码块,

ax = plt.axes(projection = '3d')
ax.plot3D(outputs_real, outputs_imaginary, inputs)
ax.set_xlabel('Real Component')
ax.set_ylabel('Imaginary Component')
ax.set_zlabel('Inputs')
plt.show()


和第二个代码块,使用上面的两个轴制作2D图形。

ax2 = plt.plot(outputs_real, outputs_imaginary)
ax2.set_xlabel('Real Component')
ax2.set_ylabel('Imaginary Component')

但由于某种原因,当我尝试绘制第二个时,我会得到这个错误
AttributeError: 'list' object has no attribute 'set_xlabel'
第二个图将像这样Map到第一个图:

我希望这两个图是分开的
详细信息:
1.这是在一个100字节的笔记本上完成的

  1. outputs_真实的、outputs_imaginary和inputs都是列表
ct2axkht

ct2axkht1#

从matplotlib documentationplt.plot返回表示绘制数据的线条列表。
如果要更改x和y标签,请使用plt.xlabel('text')plt.ylabel('text'),如下所示:

plt.plot(outputs_real, outputs_imaginary)
plt.xlabel('Real Component')
plt.ylabel('Imaginary Component')

创建2D和3D单独图形的示例:

import numpy as np
from matplotlib import pyplot as plt

# create 3d data
z = np.linspace(0, 15, 1000)
x = np.sin(z)
y = np.cos(z)

# plot 3D
fig = plt.figure(figsize=(10,5))
ax = fig.add_subplot(111, projection='3d')
ax.plot3D(x, y, z)
ax.set_title("3D plot")
ax.set_xlabel("X")
ax.set_ylabel("Y")
ax.set_zlabel("Z")
plt.show()

# plot 2D
plt.plot(x, y)
plt.title("2D plot")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

这将创建以下两个图:

rslzwgfq

rslzwgfq2#

一种方法是创建一个新的图形。

plt.figure(2)
ax2 = plt.axes()

如果需要,也可以同时绘制两个图形,方法是不调用第一个plt.show(),而只在创建两个图形后调用plt.show()

相关问题