Menyusun ulang urutan nilai garis bujur pada sumbu x

Saya memiliki array garis bujur waktu yang saya plot menggunakan fungsi kontur matplotlib. Nilai garis bujur saya berkisar dari [-180, 180] dan dengan demikian muncul pada sumbu x dalam urutan ini.

Saya ingin sumbu x saya berjalan dari 0 derajat ke 0 derajat, sehingga sumbu x saya menjadi (0, 60, 120, 180, -120, -60, 0). Apakah ada cara mudah untuk melakukan ini?

Kode saya saat ini adalah:

levels = np.arange(0, 5+0.5, 0.5)
lon_ticks = np.array([0, 60, 120, 180, -120, -60, 0])

for i in range(3):
    fig = plt.figure(figsize = (15, 15))
    ax = fig.add_subplot(1, 1, 1)
    im = ax.contourf(lon,date_list,TRMM_lat_mean[:,:,i], 
                 levels = levels, extend = 'both', cmap = 'gist_ncar')
    cb = plt.colorbar(im)


    plt.savefig("C:/Users/amcna/Desktop/fig{number}.png".format(number = i)) 

Output yang mana:

!(https://imgur.com/epedcTu)

Seperti yang Anda lihat, susunan bujur saya terbentang dari [-180, 180], namun saya ingin susunannya sesuai urutan yang saya tentukan di atas.


person Andrew McNaughton    schedule 29.07.2020    source sumber
comment
Tolong bisakah Anda mengedit ini dan menambahkan kode yang dimaksud?   -  person Arvind Raghu    schedule 31.07.2020
comment
Maaf atas balasan yang lambat. Saya telah mengedit postingan tersebut.   -  person Andrew McNaughton    schedule 04.08.2020


Jawaban (1)


Karena data Anda bersifat siklik, representasi melalui koordinat kutub mungkin berfungsi:

Contoh:

def f(x, y):
    return np.sin(x) ** 10 + np.cos(10 + y * x) * np.cos(x)

x = np.radians([0, 60, 120, 180, -120, -60, 0])
y = np.arange(0, 5+0.5, 0.5)

X, Y = np.mesh

grid(x, y)
Z = f(X, Y)

#-- Plot... ------------------------------------------------
fig, ax = plt.subplots(subplot_kw=dict(projection='polar'))
ax.contourf(Y, X, Z)

plt.show()

masukkan deskripsi gambar di sini

Jika Anda tidak ingin melakukan itu, thread ini mungkin membantu Anda: Menangani siklus data dengan kontur/kontur matplotlib

person ttreis    schedule 04.08.2020
comment
Terima kasih atas tautan tentang data siklik. - person Andrew McNaughton; 05.08.2020