Rumah > Artikel > pembangunan bahagian belakang > Pustaka lukisan Python sumber terbuka yang berkuasa
Sebab mengapa saya telah menggunakan matplotlib sebelum ini adalah kerana saya telah menghabiskan ratusan jam "tenggelam" di dalamnya untuk mempelajari sintaksnya yang kompleks. Ini juga menyebabkan saya menghabiskan banyak larut malam mencari di StackOverflow untuk "memformat tarikh" atau "menambah paksi Y kedua".
Tetapi kini kami mempunyai pilihan yang lebih baik - seperti perpustakaan Plotly Plotly sumber terbuka yang mudah digunakan, didokumentasikan dengan baik dan berkuasa. Hari ini saya akan memberi anda pengalaman yang mendalam dan memahami cara ia boleh melukis carta yang lebih baik dengan kod yang sangat mudah (walaupun hanya satu baris!).
Semua kod dalam artikel ini adalah sumber terbuka pada Github dan semua carta adalah interaktif Sila gunakan buku nota Jupyter untuk melihat.
(Alamat kod sumber Github: https://github.com/WillKoehrsen/Data-Analysis/blob/master/plotly/Plotly%20Whirlwind%20Introduction.ipynb)
(Contoh carta yang dilukis mengikut plotly. Sumber imej: plot.ly)
Pakej Python plotly ialah perpustakaan kod sumber terbuka berdasarkan plot.js , manakala yang terakhir adalah berdasarkan d3.js. Apa yang sebenarnya kami gunakan ialah perpustakaan yang merangkum secara plot, dipanggil cufflinks, yang memudahkan anda menggunakan plotly dan jadual data Pandas untuk berfungsi bersama.
*Nota: Plotly sendiri ialah syarikat teknologi visualisasi dengan beberapa produk berbeza dan set alatan sumber terbuka. Pustaka Python Plotly adalah percuma untuk digunakan Dalam mod luar talian, anda boleh mencipta carta tanpa had dalam mod dalam talian, kerana perkhidmatan perkongsian Plotly digunakan, anda hanya boleh menjana dan berkongsi 25 carta.
Semua visualisasi dalam artikel ini dilakukan dalam Buku Nota Jupyter menggunakan perpustakaan plotly + cufflinks dalam mod luar talian. Selepas melengkapkan pemasangan menggunakan pautan manset pemasangan pip secara plot, anda boleh menggunakan kod berikut untuk melengkapkan import dalam Jupyter:
Taburan univariate: histogram dan Carta plot kotak
Carta analisis univariat selalunya menjadi amalan standard semasa memulakan analisis data, dan histogram pada asasnya adalah salah satu carta yang diperlukan untuk analisis pengedaran univariat (walaupun masih mempunyai beberapa kelemahan).
Ambil jumlah bilangan suka pada catatan blog sebagai contoh (lihat Github untuk data asal: https://github.com/WillKoehrsen/Data-Analysis/tree/master/medium) dan buat ringkasan histogram interaktif :
(df dalam kod ialah objek kerangka data Pandas standard)
(dibuat menggunakan plotly+ cufflinks Interactive bar chart)
Bagi pelajar yang sudah biasa dengan matplotlib, anda hanya perlu menaip satu huruf lagi (tukar .plot kepada .iplot) untuk mendapatkan carta interaktif yang kelihatan lebih cantik! Mengklik pada elemen pada imej mendedahkan maklumat terperinci, mengezum masuk dan keluar, dan (kita akan pergi ke seterusnya) menyerlahkan ciri seperti menapis bahagian tertentu imej.
Jika anda ingin melukis carta lajur bertindan, anda hanya perlu melakukan ini:
Hanya lakukan operasi mudah pada jadual data panda Memproses dan menjana carta bar:
Seperti yang ditunjukkan di atas, kami boleh menyepadukan keupayaan plotly + manset dan panda bersama-sama. Sebagai contoh, kita boleh menggunakan .pivot() untuk melakukan analisis jadual pangsi dan kemudian menjana carta bar.
Sebagai contoh, mengira bilangan peminat baharu yang dibawa oleh setiap artikel dalam saluran penerbitan yang berbeza:
Kelebihan carta interaktif ialah kita boleh meneroka data dan memisahkan sub-item untuk analisis sesuka hati. Plot kotak boleh memberikan banyak maklumat, tetapi jika anda tidak dapat melihat nilai tertentu, anda mungkin terlepas banyak maklumat itu!
Plot serakan ialah kandungan teras kebanyakan analisis Ia membolehkan kita melihat perubahan satu pembolehubah dari semasa ke semasa, atau dua (atau lebih) perubahan dalam hubungan antara pembolehubah.
Analisis Siri Masa
Dalam dunia nyata, sebahagian besar data mempunyai unsur masa. Nasib baik, pautan manset plotly + dilengkapi dengan fungsi terbina dalam untuk menyokong analisis visual siri masa.
Ambil data artikel yang saya terbitkan di tapak web "Towards Data Science" sebagai contoh Mari kita bina set data menggunakan masa penerbitan sebagai indeks untuk melihat bagaimana populariti artikel itu berubah:
Dalam gambar di atas, kami telah mencapai beberapa perkara dengan satu baris kod:
Untuk paparan Untuk lebih banyak data, kami boleh menambah anotasi teks dengan mudah:
(plot taburan dengan anotasi teks)
Dalam kod di bawah, kami mewarnakan plot serakan dua pembolehubah dengan pembolehubah kategori ketiga:
Seterusnya Kami akan pergi untuk mendapatkan sedikit lebih rumit: paksi logaritma. Kami mencapai ini dengan menentukan parameter susun atur plotly (untuk susun atur yang berbeza, sila rujuk dokumen rasmi https://plot.ly/python/reference/), dan kami menggabungkan saiz titik (parameter saiz) dan pembolehubah berangka read_ratio (nisbah bacaan) terikat Lebih besar nombor, lebih besar saiz gelembung.
Jika anda ingin menjadi lebih kompleks (lihat kod sumber Github untuk butiran), kami juga boleh memasukkan 4 ke dalam satu gambar Pembolehubah ! (Walau bagaimanapun, anda tidak disyorkan untuk melakukan ini)
Seperti sebelum ini, kami boleh menggabungkan panda dengan plotly+cufflinks untuk mencapai banyak carta berguna:
Adalah disyorkan agar anda menyemak dokumentasi rasmi atau kod sumber, yang mengandungi lebih banyak contoh dan contoh fungsi. Dengan hanya satu atau dua baris kod, anda boleh menambah elemen berguna seperti anotasi teks, baris tambahan dan baris paling sesuai pada carta anda, sambil mengekalkan fungsi interaktif asal.
Seterusnya, kami akan memperkenalkan beberapa carta khas secara terperinci Anda mungkin tidak menggunakannya dengan kerap, tetapi saya berjanji bahawa selagi anda menggunakannya dengan baik, Ia pasti akan menarik perhatian orang ramai. Kami akan menggunakan modul figure_factory plotly, yang boleh menjana carta hebat dengan hanya satu baris kod!
Matriks Plot Scatter
Jika kita ingin meneroka hubungan antara banyak pembolehubah yang berbeza, Matriks Plot Scatter (juga dikenali sebagai SPLOM) ialah pilihan yang bagus:
Malah grafik kompleks sedemikian adalah interaktif sepenuhnya, membolehkan kami meneroka data dengan lebih terperinci.
Untuk menggambarkan hubungan antara berbilang pembolehubah berangka, kita boleh mengira korelasinya dan kemudian memvisualisasikannya dalam bentuk peta haba berlabel:
Selain kepelbagaian carta yang tidak berkesudahan, Cufflinks juga menyediakan banyak tema pewarna yang berbeza, membolehkan anda bertukar dengan mudah antara gaya carta yang berbeza. Dua gambar berikut ialah tema "ruang" dan tema "ggplot" masing-masing:
Selain itu, terdapat carta 3D ( permukaan dan gelembung gelembung):
Bagi pengguna yang berminat dalam penyelidikan, tidak sukar untuk membuat carta pai:
Selepas anda menjana carta ini dalam Jupyter Notebook, anda akan mendapati penjuru kanan sebelah bawah carta muncul Pautan kecil yang menyatakan "Eksport ke plot.ly". Jika anda mengklik pada pautan ini, anda akan melompat ke "Bengkel Carta" (https://plot.ly/create/).
Di sini anda boleh menyemak dan menggilap carta anda sebelum pembentangan akhir. Anda boleh menambah anotasi, memilih warna elemen tertentu, menyusun segala-galanya dan menghasilkan carta yang hebat. Kemudian, anda juga boleh menerbitkannya di web, menjana pautan untuk disemak oleh orang lain.
Dua gambar berikut telah dibuat dalam bengkel carta:
Setelah berkata begitu banyak, ia mudah dibaca Adakah anda bosan menontonnya? Walau bagaimanapun, kami belum habiskan semua keupayaan perpustakaan ini. Disebabkan oleh keterbatasan ruang, terdapat beberapa carta dan contoh yang lebih baik, jadi sila lawati dokumen rasmi plotly dan cufflinks untuk melihatnya satu persatu.
(Peta interaktif plot yang menunjukkan data ladang angin di seluruh Amerika Syarikat. Sumber: plot.ly)
Perkara yang paling teruk tentang kesilapan kos tenggelam adalah bahawa orang sering hanya menyedari betapa banyak masa yang telah mereka sia-siakan apabila mereka berputus asa dengan usaha sebelumnya.
Apabila memilih pustaka lukisan, fungsi yang paling anda perlukan ialah:
Satu baris carta kod diperlukan untuk meneroka data dengan pantas
Mulai sekarang, pilihan terbaik untuk menggunakan bahasa Python untuk mencapai fungsi di atas adalah plot. Ia membolehkan kami menjana carta visual dengan cepat, dan ciri interaktif membolehkan kami memahami maklumat dengan lebih baik.
Saya mengakui bahawa merancang pastinya merupakan bahagian yang paling menyeronokkan dalam kerja sains data, dan secara terancang menjadikan menyelesaikan tugasan ini lebih menyeronokkan.
(Gunakan carta untuk menunjukkan perubahan dalam keseronokan melukis dengan Python dari semasa ke semasa. Sumber: towardwardsdatascience.com)
2022 adalah masa untuk menaik taraf Anda perpustakaan lukisan Python, biarkan diri anda menjadi lebih pantas, lebih kuat dan lebih cantik dalam sains data dan visualisasi!
Atas ialah kandungan terperinci Pustaka lukisan Python sumber terbuka yang berkuasa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!