Plot kepadatan Matplotlib dalam koordinat kutub?

Saya memiliki array yang disimpan sebagai file txt yang memiliki entri yang sesuai dengan nilai distribusi dalam koordinat kutub. Jadi tampilannya seperti ini:

  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)

Saya ingin membuat plot kepadatan f (semakin tinggi f, semakin merah warna yang saya inginkan). Apakah ada cara untuk melakukan ini dengan matplotlib? Kode eksplisit akan sangat membantu, karena saya masih baru dalam hal ini.


person naomig    schedule 25.06.2015    source sumber
comment
Saya rasa Anda tidak benar-benar memerlukan plot kepadatan -- Anda memiliki satu entri f(r,t) untuk setiap koordinat jaringan kutub, bukan? Tetapi nilai f bervariasi dari satu titik ke titik lainnya? Anda hanya perlu memetakan array itu pada plot kutub.   -  person cphlewis    schedule 30.06.2015
comment
@cphlewis, benar, itu yang saya maksud. Saya salah bicara karena (bukan itu penting) f adalah fungsi kepadatan.   -  person naomig    schedule 30.06.2015
comment
Selain itu, saya menemukan sumber yang bagus untuk ini -- blog.rtwilson. com/producing-polar-contour-plots-with-matplotlib   -  person naomig    schedule 30.06.2015


Jawaban (1)


Dalam contoh ini, a apakah Anda theta1...thetan, b adalah r1...rn Anda, c adalah 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)

masukkan deskripsi gambar di sini

Pada dasarnya plot kontur terisi di sumbu kutub. Anda dapat menentukan peta warna alternatif dengan cmap=.... cm.jet berubah dari biru menjadi merah, dengan merah sebagai nilai terbesar.

person CT Zhu    schedule 30.06.2015