我有一个数组保存为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做到这一点?显式代码会有所帮助,因为我对此很重要。
答案 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)
基本上是极轴的填充等高线图。
您可以使用cmap=...
指定替代色彩映射。 cm.jet
从蓝色变为红色,红色是最大值。