当然!只需pcolormesh
在极轴上使用。
例如
import matplotlib.pyplot as plt
import numpy as np
# Generate some data...
# Note that all of these are _2D_ arrays, so that we can use meshgrid
# You'll need to "grid" your data to use pcolormesh if it's un-ordered points
theta, r = np.mgrid[0:2*np.pi:20j, 0:1:10j]
z = np.random.random(theta.size).reshape(theta.shape)
fig, (ax1, ax2) = plt.subplots(ncols=2, subplot_kw=dict(projection='polar'))
ax1.scatter(theta.flatten(), r.flatten(), c=z.flatten())
ax1.set_title('Scattered Points')
ax2.pcolormesh(theta, r, z)
ax2.set_title('Cells')
for ax in [ax1, ax2]:
ax.set_ylim([0, 1])
ax.set_yticklabels([])
plt.show()
如果您的数据尚未在常规网格上,则需要对其进行网格化以使用 pcolormesh。
不过,它看起来像是在您的情节中的常规网格上。在这种情况下,网格化非常简单。如果它已经订购,它可能就像调用一样简单reshape
。否则,一个简单的循环或利用numpy.histogram2d
您的z
值作为权重将满足您的需求。