我想绘制沿 y 轴堆叠的 2D 等高线图。
我用 Python 编写了以下代码,它生成沿 z 轴堆叠的 2D 等值线图,但是,当我尝试通过将 zdir 变量设置为“y”并重新排列声明来沿 y 轴堆叠它们时相应的限制、刻度和标签,生成的图为空,仅显示轴。必要的变量 x、y、x3 和级别以及函数
FE_ethylene
已预先声明。
有人知道如何沿 y 轴堆叠等高线图吗?
#Stack along the z-axis
fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(111, projection='3d')
contours3D = []
for i, s in enumerate(x3):
print(i,s)
contours3D.append(ax.contourf(x, y, FE_ethylene(x, y, s), zdir='z', offset=s, levels=levels, cmap='rainbow', alpha = 1.0-i/10))
ax.set_xlim3d(0.45, 2.45)
ax.set_ylim3d(0.55, 2.45)
ax.set_zlim3d(0.07, 0.13)
ax.set_xticks(np.linspace(0.6, 2.4, 5))
ax.set_yticks(np.linspace(0.6, 2.4, 5))
ax.set_zticks(np.linspace(0.08, 0.12, 5))
ax.set_xlabel("Carbon content (mg/cm2)")
ax.set_ylabel("PTFE content (mg/cm2)")
ax.set_zlabel("Sustainion content (mg/cm2)")
plt.show()
可以沿 y 轴堆叠 2d 等高线图。
import numpy as np
import matplotlib.pyplot as plt
x, y = np.meshgrid(np.linspace(0, 1, 11),np.linspace(0, 1, 11))
z = lambda x, y: np.sin(x-0.5)+np.cos(y-0.5)
ax = plt.subplot(111, projection='3d')
ax.contourf(x, z(x, y)+1.0, y, zdir='y', offset=1.0, alpha=1.0)
ax.contourf(x, z(x, y)+0.5, y, zdir='y', offset=0.5, alpha=0.8)
ax.contourf(x, z(x, y)+0.0, y, zdir='y', offset=0.0, alpha=0.6)
ax.set_xlim3d(0-0.05, 1.05)
ax.set_ylim3d(0-0.05, 1.05)
ax.set_zlim3d(0-0.05, 1.05)
plt.show
如果您无法使用此功能,则可能会犯一个错误,但您没有向我们展示一个可重复的最小示例,说明如何在 y 轴上堆叠 2d 轮廓,因此这很困难,对于至少对我来说,可以进一步帮助你。