Saya memiliki beberapa Pandas DataFrames yang berbagi skala nilai yang sama, tetapi memiliki kolom dan indeks yang berbeda. Saat memohon df.plot()
, saya mendapatkan gambar plot terpisah. apa yang sebenarnya saya inginkan adalah memiliki semuanya dalam plot yang sama dengan subplot, tetapi sayangnya saya gagal menemukan solusi tentang bagaimana dan akan sangat menghargai beberapa bantuan.
sumber
.subplots()
mengembalikan sistem koordinat yang berbeda tergantung pada dimensi larik subplot yang Anda buat. Jadi jika Anda mengembalikan subplot di mana, katakanlahnrows=2, ncols=1
, Anda harus mengindeks sumbu sebagaiaxes[0]
danaxes[1]
. Lihat stackoverflow.com/a/21967899/1569221IndexError: too many indices for array
.subplot()
digunakan. Setelsqueeze=False
ke memaksa.subplot()
untuk selalu mengembalikanndarray
dalam hal apa pun baris dan kolom.Anda dapat melihat mis. dalam dokumentasi yang mendemonstrasikan jawaban joris. Juga dari dokumentasinya, Anda juga bisa mengatur
subplots=True
danlayout=(,)
di dalamplot
fungsi pandas :Anda juga bisa menggunakan
fig.add_subplot()
yang mengambil parameter grid subplot seperti 221, 222, 223, 224, dll seperti yang dijelaskan dalam posting di sini . Contoh plot yang bagus pada bingkai data panda, termasuk subplot, dapat dilihat di notebook ipython ini .sumber
subplots
danlayout
kwargs akan menghasilkan banyak plot HANYA untuk satu kerangka data. Ini terkait dengan, tetapi bukan solusi untuk pertanyaan OP untuk memplot beberapa kerangka data ke dalam satu plot.layout=(df.shape[1], 1)
, misalnya).Anda dapat menggunakan gaya Matplotlib yang sudah dikenal dengan memanggil
figure
dansubplot
, tetapi Anda hanya perlu menentukan sumbu saat ini menggunakanplt.gca()
. Sebuah contoh:dll ...
sumber
Anda dapat memplot beberapa subplot dari beberapa bingkai data panda menggunakan matplotlib dengan trik sederhana membuat daftar semua bingkai data. Kemudian gunakan perulangan for untuk memplot subplot.
Kode kerja:
Dengan menggunakan kode ini, Anda dapat memplot subplot dalam konfigurasi apa pun. Anda hanya perlu menentukan jumlah baris
nrow
dan jumlah kolomncol
. Juga, Anda perlu membuat daftar bingkai datadf_list
yang ingin Anda plot.sumber
count =+1
tetapicount +=1
Anda dapat menggunakan ini:
sumber
Anda mungkin tidak perlu menggunakan Panda sama sekali. Berikut plot matplotlib frekuensi kucing:
sumber
Berdasarkan tanggapan @joris di atas, jika Anda telah membuat referensi ke subplot, Anda juga dapat menggunakan referensi tersebut. Sebagai contoh,
sumber
Cara membuat beberapa plot dari kamus dataframe dengan data yang panjang (rapi)
Asumsi
cat
mungkin tumpang tindih, tetapi semua kerangka data mungkin tidak berisi semua nilaicat
hue='cat'
Karena bingkai data sedang diiterasi, tidak ada jaminan bahwa warna akan dipetakan sama untuk setiap plot
'cat'
untuk semua kerangka dataImpor dan data sintetis
Buat pemetaan dan plot warna
sumber