Matplotlib garis transparan

131

Saya merencanakan dua lintasan yang sama di matplotlib dan saya ingin memplot setiap garis dengan transparansi parsial sehingga merah (diplot kedua) tidak mengaburkan biru.

teks alternatif

Sunting : Ini gambar dengan garis transparan.

teks alternatif

Gus
sumber

Jawaban:

254

Polos dan sederhana:

plt.plot(x, y, 'r-', alpha=0.7)

(Saya tahu saya tidak menambahkan yang baru, tetapi jawaban langsung harus terlihat).

Davoud Taghawi-Nejad
sumber
Saya tidak bisa melihat di mana parameter alpha didokumentasikan. Bisakah Anda memperbarui jawaban untuk memasukkan di mana ini didokumentasikan?
Alex Spurling
1
@AlexSpurling plt.plotmengambil argumen kata kunci Line2Dyang parameter alpha-nya adalah properti.
Thirdwater
27

Setelah saya merencanakan semua garis, saya dapat mengatur transparansi dari semuanya sebagai berikut:

for l in fig_field.gca().lines:
    l.set_alpha(.7)

EDIT: silakan lihat jawaban Joe di komentar.

Gus
sumber
28
Semua fungsi merencanakan maplotlib mengambil parameter alpha secara langsung. Anda bisa melakukannya plt.plot(x, y, 'r-', alpha=0.7).
Joe Kington
3
Saya akan senang melihat gambar yang diperbarui - dapatkah Anda menambahkannya ke jawaban ini?
Sven Marnach
3
@ JoKington: yang tampaknya mengkomposisikan baris sebelum menerapkan transparansi. Apakah ada cara untuk melakukannya sebaliknya, sehingga garis transparan bertambah menjadi lebih gelap?
naught101
5

Ini benar-benar tergantung pada fungsi apa yang Anda gunakan untuk memplot garis, tetapi coba lihat apakah pada yang Anda gunakan mengambil nilai alpha dan atur ke sesuatu seperti 0,5. Jika itu tidak berhasil, coba dapatkan objek garis dan atur nilai alpha mereka secara langsung.

moinudin
sumber
1
Komentar oleh @ joe-kington mengatakan semua fungsi matplotlib mengambil parameter alpha, apakah jawaban Anda memerlukan koreksi atau komentarnya?
U3.1415926