4

我有一个保存为 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 做到这一点?显式代码会很有帮助,因为我对此很陌生。

4

1 回答 1

7

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

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm

#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
ax = plt.subplot(111, polar=True)
ax.set_yticklabels([])
ctf = ax.contourf(a, b, c, cmap=cm.jet)
plt.colorbar(ctf)

在此处输入图像描述

本质上是极轴上的填充等高线图。您可以使用cmap=.... cm.jet从蓝色到红色,红色是最大值。

于 2015-06-30T15:22:43.300 回答