【问题标题】:How to plot horizontal stack of heatmaps or a stack of grid?如何绘制热图的水平堆栈或网格堆栈?
【发布时间】:2019-08-14 22:20:08
【问题描述】:

我想绘制一堆随时间计算的热图、轮廓或网格。剧情应该是这样的,

我试过这个:

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

fig = plt.figure()
ax = fig.gca(projection='3d')

x = np.linspace(0, 1, 100)

X, Z = np.meshgrid(x, x)
Y = np.sin(X)*np.sin(Z)


levels = np.linspace(-1, 1, 40)

ax.contourf(X, Y, Z, zdir='y')
ax.contourf(X, Y+3, Z, zdir='y')
ax.contourf(X, Y+7, Z, zdir='y')



ax.legend()

ax.view_init(15,155)
plt.show()

首先,我的情节看起来很丑。它看起来也不像我想要的。我无法在那里制作网格,并且 2d 表面是倾斜的。

非常感谢任何帮助!我正在为此苦苦挣扎。

相关的stackoverflow:

[1]Python plot - stacked image slices

[2]Stack of 2D plot

【问题讨论】:

  • 我不建议使用等高线图。相反,plot_surface 应该可以工作,如 this question

标签: python matplotlib data-visualization


【解决方案1】:

如何制作一系列 3d 曲面图,将您希望在等高线中呈现的数据绘制为 facecolor?

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.ticker import LinearLocator
import numpy as np


fig = plt.figure()
ax = fig.gca(projection='3d')

X = np.arange(-5, 5, 0.25)
Z = np.arange(-5, 5, 0.25)
X, Z = np.meshgrid(X, Z)
C = np.random.random(size=40*40*3).reshape((40, 40, 3))
ax.plot_surface(X, np.ones(shape=X.shape)-1, Z, facecolors=C, linewidth=0)
ax.plot_surface(X, np.ones(shape=X.shape), Z, facecolors=C, linewidth=0)
ax.plot_surface(X, np.ones(shape=X.shape)+1, Z, facecolors=C, linewidth=0)

【讨论】:

    猜你喜欢
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    相关资源
    最近更新 更多