Saya sudah mulai dengan matplot dan mengelola beberapa plot dasar, tetapi sekarang saya merasa sulit untuk menemukan cara melakukan beberapa hal yang saya butuhkan sekarang :(
Pertanyaan saya yang sebenarnya adalah bagaimana menempatkan gelar global dan legenda global pada sosok dengan subplot.
Saya membuat subplot 2x3 di mana saya memiliki banyak grafik berbeda dalam berbagai warna (sekitar 200). Untuk membedakan (kebanyakan) dari mereka, saya menulis sesuatu seperti
def style(i, total):
return dict(color=jet(i/total),
linestyle=["-", "--", "-.", ":"][i%4],
marker=["+", "*", "1", "2", "3", "4", "s"][i%7])
fig=plt.figure()
p0=fig.add_subplot(321)
for i, y in enumerate(data):
p0.plot(x, trans0(y), "-", label=i, **style(i, total))
# and more subplots with other transN functions
(ada pendapat tentang ini? :)) Setiap subplot memiliki fungsi gaya yang sama.
Sekarang saya mencoba mendapatkan judul global untuk semua subplot dan juga legenda global yang menjelaskan semua gaya. Saya juga perlu membuat font menjadi kecil agar sesuai dengan 200 gaya di sana (saya tidak perlu gaya yang benar-benar unik, tetapi setidaknya beberapa upaya)
Bisakah seseorang membantu saya menyelesaikan tugas ini?
sumber
Jawaban:
Judul global : Dalam rilis matplotlib yang lebih baru, seseorang dapat menggunakan metode Figure.suptitle () dari
Figure
:Atau (berdasarkan komentar @Steven C. Howell di bawah (terima kasih!)), Gunakan fungsi matplotlib.pyplot.suptitle () :
sumber
import matplotlib.pyplot as plt
:, perintah dapat dimasukkan sesederhanaplt.figure(); plt.suptitle('Title centered above all subplots'); plt.subplot(231); plt.plot(data[:,0], data[:,1]);
dll ...Selain jawaban orbeckst, seseorang mungkin juga ingin menggeser subplot ke bawah. Inilah MWE dalam gaya OOP:
memberikan:
sumber
Untuk label legenda bisa menggunakan sesuatu seperti di bawah ini. Label legenda adalah garis plot yang disimpan. modFreq adalah tempat nama label sebenarnya yang sesuai dengan garis plot. Kemudian parameter ketiga adalah lokasi legenda. Terakhir, Anda dapat menyampaikan argumen apa pun seperti yang telah saya bahas di sini, tetapi sebagian besar membutuhkan tiga argumen pertama. Juga, Anda seharusnya melakukannya jika Anda mengatur label dengan benar dalam perintah plot. Untuk memanggil legenda dengan parameter lokasi dan menemukan label di setiap baris. Saya lebih beruntung membuat legenda saya sendiri seperti di bawah ini. Tampaknya berhasil dalam semua kasus di mana sepertinya tidak pernah mendapatkan cara lain berjalan dengan baik. Jika Anda tidak mengerti, beri tahu saya:
Anda juga dapat menggunakan kaki untuk mengubah ukuran font atau hampir semua parameter legenda.
Judul global seperti yang tertera pada komentar di atas dapat dilakukan dengan menambahkan teks sesuai link yang disediakan: http://matplotlib.sourceforge.net/examples/pylab_examples/newscalarformatter_demo.html
sumber
suptitle
tampaknya cara untuk pergi, tetapi untuk apa nilainya,figure
memilikitransFigure
properti yang dapat Anda gunakan:sumber