Python matplotlib中的径向热图

Python matplotlib中的径向热图,python,matplotlib,plot,Python,Matplotlib,Plot,我有相当多的麻烦来创建一个径向热图。目前,我正在使用以下脚本: import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D import numpy as np fig = plt.figure() ax = Axes3D(fig) losses = np.random.rand(360) rad = np.linspace(0, 2*np.pi, 360) r, th = np.meshgrid(rad,

我有相当多的麻烦来创建一个径向热图。目前,我正在使用以下脚本:

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

fig = plt.figure()
ax = Axes3D(fig)

losses = np.random.rand(360)
rad = np.linspace(0, 2*np.pi, 360)
r, th = np.meshgrid(rad, losses)
z = 1*losses

plt.subplot(projection="polar")
plt.pcolormesh(th, r, z)
plt.plot(losses, r, color='k', ls='none') 
plt.grid()
plt.show()
我一直在该脚本中遇到错误,我不太明白其原因:

ValueError: not enough values to unpack (expected 2, got 1)
我的目标是实现如下目标:


所以,从0到1的损耗中的每个值代表一个1度的间隔,在每个点上是一条相同大小的线,这就是为什么我要设置z=1*从圆心到圆表面的损耗。知道哪里出了问题吗?

对3D的引用有点混乱。此外,损耗是一维阵列,对于pcolormesh,需要二维信息

下面的代码通过平铺1D损失创建虚拟2D网格。另外,rad作为名称可能会令人困惑。通常在极坐标图中,从中心向外的径向有一个r,围绕圆的角度有一个θ。所以,在这个例子中,rad用θ表示。我为径向创建了一个单独的y轴,因为它类似于常规绘图中的y轴

将matplotlib.pyplot作为plt导入 将numpy作为np导入 图=plt.figure 损失=np.random.rand360 rad=np.linspace0,2*np.pi,360 y=np.linspaceloss.min,loss.max,50 θ,r=np.meshgridrad,y z=np.Tilleloss,leny,1 plt.子地块投影=极坐标 plt.pcolormeshetta,r,z plt.grid plt.yticks[]删除径向上的记号和记号标签 节目 左边是代码的输出。在右边,损失时的输出将是一个更具功能的np.sinrad*5,并带有另一个colormap cmap='inferno'