matplotlib 沿z轴方向的堆栈2D密度图沿着

dvtswwa3  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(110)

我知道如何使用contourf,它有一个选项contourf(X,Y,Z,...,offset=?,zdir="z"),见附图的说明。
我试着为pcolor做一些类似的事情,但似乎找不到类似的选项。我的问题是matplotlib是否能够堆叠2d密度图?如果可以,怎么做?

zkure5ic

zkure5ic1#

不使用pcolorpcolormesh,您可以使用plot_surface来执行此操作,其中您将Z值设置为给定级别的常数(这是通过将Z轴值乘以一个矩阵来完成的),然后使用facecolorskwarg来创建图像。
下面是一些示例代码:

import matplotlib.pyplot as plt
import numpy as np

N = 100
x = np.linspace(-5,5,N)
y = np.linspace(-5,5,N)
levels = np.arange(1,10,2)
c_func = lambda n: np.exp(-(x[:,None]**2/n + y[None,:]**2/n))

fig, ax = plt.subplots(subplot_kw=dict(projection="3d"))
for level in levels:
    C = c_func(level)
    ax.plot_surface(x[:,None], y[None,:], level*np.ones((N,N)), 
                    facecolors=plt.cm.hot(C))
fig.show()

相关问题