极坐标中的Matplotlib密度图?

时间:2015-06-25 13:32:51

标签: python arrays matplotlib plot density-plot

我有一个数组保存为txt文件,其中的条目对应于极坐标中的分布值。所以它看起来像这样:

  f(r1,theta1) f(r1, theta2) ..... f(r1, theta_max)
  f(r2,theta1) f(r2, theta2) .....        .
        .                                 .
        .                                 .
        .                                 .
  f(r_max,theta1) .................f(r_max, theta_max)

我想做一个f的密度图(f越高,我想要的颜色越红)。有没有办法用matplotlib做到这一点?显式代码会有所帮助,因为我对此很重要。

1 个答案:

答案 0 :(得分:4)

在这个示例中,a是你theta1 ... thetan,b是你的r1 ... rn,c是你的f(a,b):

#fake data:
a = np.linspace(0,2*np.pi,50)
b = np.linspace(0,1,50)
A, B = np.meshgrid(a, b)
c = np.random.random(A.shape)

#actual plotting
import matplotlib.cm as cm
ax = plt.subplot(111, polar=True)
ax.set_yticklabels([])
ctf = ax.contourf(a, b, c, cmap=cm.jet)
plt.colorbar(ctf)

enter image description here

基本上是极轴的填充等高线图。 您可以使用cmap=...指定替代色彩映射。 cm.jet从蓝色变为红色,红色是最大值。