我知道如何使用contourf,它有一个选项contourf(X,Y,Z,...,offset=?,zdir="z"),见附图的说明。我试着为pcolor做一些类似的事情,但似乎找不到类似的选项。我的问题是matplotlib是否能够堆叠2d密度图?如果可以,怎么做?
contourf(X,Y,Z,...,offset=?,zdir="z")
zkure5ic1#
不使用pcolor或pcolormesh,您可以使用plot_surface来执行此操作,其中您将Z值设置为给定级别的常数(这是通过将Z轴值乘以一个矩阵来完成的),然后使用facecolorskwarg来创建图像。下面是一些示例代码:
pcolor
pcolormesh
plot_surface
facecolors
kwarg
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()
1条答案
按热度按时间zkure5ic1#
不使用
pcolor
或pcolormesh
,您可以使用plot_surface
来执行此操作,其中您将Z值设置为给定级别的常数(这是通过将Z轴值乘以一个矩阵来完成的),然后使用facecolors
kwarg
来创建图像。下面是一些示例代码: