在 python 中绘制 3D 图形
Plot 3D figure in python
假设我有一个一维数组 X = ([1, 2, 3]),对于 X 中的每个元素,我们都有一个对应的二维图。
例如,我们有一个函数z=f(y, X),X是这个函数中的一个参数,当我们取与X不同的值时,我们有不同的二维图。
所以我想做的是在一个图中绘制它,它是一种 3D 图,我们有三个轴,一个是 X,一个是 y,一个是 z=f(y, X) ,那么这个图怎么画呢?
谢谢。
PS:I 已上传图片。我要画的就是这种图
创建子图网格应该有所帮助:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)-5
Ys = np.array([x**i for i in range(5)])
plt.figure(figsize=(12, 2))
for i, y in enumerate(Ys):
plt.subplot(1, len(Ys), i+1)
plt.plot(x, y)
plt.title('x^%d' % i)
plt.tight_layout()
我在示例中使用 plt.tight_layout()
,但您可能需要考虑将其删除并改用 plt.subplots_adjust
。 x-labels(x^0、x^1 等)在我的示例中通过给每个子图一个标题来放置,但您可能需要考虑使用 plt.figtext()
手动将它们放置在确切位置你要。最后,检查http://matplotlib.org/users/gridspec.html一些更酷的次要情节安排。
例如,我们有一个函数z=f(y, X),X是这个函数中的一个参数,当我们取与X不同的值时,我们有不同的二维图。
所以我想做的是在一个图中绘制它,它是一种 3D 图,我们有三个轴,一个是 X,一个是 y,一个是 z=f(y, X) ,那么这个图怎么画呢?
谢谢。 PS:I 已上传图片。我要画的就是这种图
创建子图网格应该有所帮助:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)-5
Ys = np.array([x**i for i in range(5)])
plt.figure(figsize=(12, 2))
for i, y in enumerate(Ys):
plt.subplot(1, len(Ys), i+1)
plt.plot(x, y)
plt.title('x^%d' % i)
plt.tight_layout()
我在示例中使用 plt.tight_layout()
,但您可能需要考虑将其删除并改用 plt.subplots_adjust
。 x-labels(x^0、x^1 等)在我的示例中通过给每个子图一个标题来放置,但您可能需要考虑使用 plt.figtext()
手动将它们放置在确切位置你要。最后,检查http://matplotlib.org/users/gridspec.html一些更酷的次要情节安排。